00001 subroutine makeline
00002 use phys_constant, only : long
00003 use def_metric
00004 use grid_parameter, only : nrg, ntg, npg
00005 use coordinate_grav_r, only : rg
00006 use coordinate_grav_theta, only : thg
00007 use coordinate_grav_phi, only : phig
00008 implicit none
00009 integer :: ok, ir0,it0,ip0, irg, itg, ipg
00010 character(10) :: char1, char2, char3, char11, char22, char33
00011 character(30) :: char_file
00012
00013 open(11,file='line.dat',status='unknown')
00014 ok=0
00015 do while (ok==0)
00016 read(11,'(5i5)',iostat=ok) ir0,it0,ip0
00017
00018
00019 write(char1, '(i5)') ir0
00020 write(char2, '(i5)') it0
00021 write(char3, '(i5)') ip0
00022 char11 = adjustl(char1)
00023 char22 = adjustl(char2)
00024 char33 = adjustl(char3)
00025
00026 if (ir0.eq.(-1)) then
00027 char_file = 'line_it' // trim(char22) // '_ip' // trim(char33) // '.txt'
00028 else if (it0.eq.(-1)) then
00029 char_file = 'line_ir' // trim(char11) // '_ip' // trim(char33) // '.txt'
00030 else if (ip0.eq.(-1)) then
00031 char_file = 'line_ir' // trim(char11) // '_it' // trim(char22) // '.txt'
00032 endif
00033
00034
00035
00036
00037
00038 open(12, file=char_file, status='unknown')
00039 if (ir0.eq.(-1).and.it0.le.ntg.and.ip0.le.npg) then
00040 do irg = 0, nrg
00041 write(12,'(1p,6e20.12)') rg(irg), psi(irg,it0,ip0) &
00042 & , alph(irg,it0,ip0) &
00043 & , bvxd(irg,it0,ip0) &
00044 & , bvyd(irg,it0,ip0) &
00045 & , bvzd(irg,it0,ip0)
00046 end do
00047 else if (it0.eq.(-1).and.ir0.le.nrg.and.ip0.le.npg) then
00048 do itg = 0, ntg
00049 write(12,'(1p,6e20.12)') thg(itg), psi(ir0,itg,ip0) &
00050 & , alph(ir0,itg,ip0) &
00051 & , bvxd(ir0,itg,ip0) &
00052 & , bvyd(ir0,itg,ip0) &
00053 & , bvzd(ir0,itg,ip0)
00054 end do
00055 else if (ip0.eq.(-1).and.it0.le.ntg.and.ir0.le.nrg) then
00056 do ipg = 0, ntg
00057 write(12,'(1p,6e20.12)') phig(ipg), psi(ir0,it0,ipg) &
00058 & , alph(ir0,it0,ipg) &
00059 & , bvxd(ir0,it0,ipg) &
00060 & , bvyd(ir0,it0,ipg) &
00061 & , bvzd(ir0,it0,ipg)
00062 end do
00063 endif
00064 close(12)
00065 end do
00066 close(11)
00067 end subroutine makeline