PROGRAM Convert_rcm_to_tecplot USE Rcm_mod_subs IMPLICIT NONE ! INTEGER :: itime = -999, time_min = -999, record_number = -1 LOGICAL :: Do_2D=.TRUE., Do_3D=.TRUE. ! REAL (rprec) :: pvgamma_total(isize,jsize) = -999.0 CHARACTER (LEN=25) :: & filename_out_1d = "rcm-output-1D-xxxxxxx.dat", & filename_out_2d = "rcm-output-2D-xxxxxxx.dat", & filename_out_3d = "rcm-output-3D-xxxxxxx.dat" CHARACTER (LEN=10) :: time_string = "xxxxxxxxxx", run_id_string CHARACTER (LEN=12) :: char_date, char_time INTEGER :: i,j, k, rec_1, rec_2 CALL system ('mkdir -p '//rcmdir//rcm_tec_subdir) CALL Date_and_time (char_date, char_time) WRITE (*, '(TR2,A)',ADVANCE='NO') 'Create 2-D files? (T/F)_____'; READ (*,*) Do_2d WRITE (*, '(TR2,A)',ADVANCE='NO') 'Create 3-D files? (T/F)_____'; READ (*,*) Do_3d WRITE (*,'(A)',ADVANCE='NO') 'ENTER RUN LABEL (10 CHARS MAX):__' READ (*,*) run_id_string WRITE (*,'(A)',ADVANCE='NO') 'ENTER RCM RECORDS TO START AND STOP: ' READ (*,*) rec_1, rec_2 ! ! CALL Read_grid () CALL Read_plasma () ! ! DO record_number = rec_1, rec_2 ! CALL Read_array (rcmdir//'rcmbndloc', record_number, label, ARRAY_1D = bndloc); imin_j = CEILING(bndloc) ! CALL Read_array (rcmdir//'rcmxmin' , record_number, label, ARRAY_2D = xmin ) CALL Read_array (rcmdir//'rcmymin' , record_number, label, ARRAY_2D = ymin ) CALL Read_array (rcmdir//'rcmvm' , record_number, label, ARRAY_2D = vm ) CALL Read_array (rcmdir//'rcmbmin' , record_number, label, ARRAY_2D = bmin ) ! CALL Read_array (rcmdir//'rcmv' , record_number, label, ARRAY_2D = v ) CALL Read_array (rcmdir//'rcmbirk' , record_number, label, ARRAY_2D = birk ) CALL Read_array (rcmdir//'rcmpedlam', record_number, label, ARRAY_2D = pedlam) CALL Read_array (rcmdir//'rcmpedpsi', record_number, label, ARRAY_2D = pedpsi) CALL Read_array (rcmdir//'rcmhall' , record_number, label, ARRAY_2D = hall ) ! CALL Read_array (rcmdir//'rcmeeta' , record_number, label, ARRAY_3D = eeta ) CALL Read_array (rcmdir//'rcmeflux' , record_number, label, ARRAY_3D = eflux ) CALL Read_array (rcmdir//'rcmeavg' , record_number, label, ARRAY_3D = eavg ) ! itime = label%intg(6) time_min = label%intg(3)*60 + label%intg(4) + NINT(REAL(label%intg(5))/60) WRITE (time_string,'(I2.2,A1,I2.2,A1,I2.2)') label%intg(3),":",label%intg(4),":",label%intg(5) WRITE (*,'(A,I5.5,A,A10,A)') 'ITIME=', itime, ' T=', time_string ! ! WRITE (filename_out_1d(15:21),'(I7.7)') itime WRITE (filename_out_2d(15:21),'(I7.7)') itime WRITE (filename_out_3d(15:21),'(I7.7)') itime ! Compute total particle pressure from all species: pressrcm (:,:) = 0.0 pvgamma_total (:,:) = 0.0 DO j = 1, jsize; DO i=1, isize IF (i < imin_j(j)) CYCLE DO k = 1, kcsize pressrcm(i,j) = pressrcm(i,j) + vm(i,j)**(five/two)*eeta(i,j,k)*ABS(alamc(k)) pvgamma_total(i,j) = pvgamma_total(i,j) + eeta(i,j,k)*ABS(alamc(k)) END DO END DO; END DO pressrcm = (pressrcm/(Re*1.0E+12)) * two/three*charge_e/1.0E-9 pvgamma_total = pvgamma_total * two/three * charge_e/(Re*1.0E+12)/1.0E-9 ! [nPa*(R_planet/nT)**(5/3)] IF (Do_2D) then OPEN (UNIT=LUN, FILE = rcmdir//rcm_tec_subdir//filename_out_2d, STATUS='REPLACE') WRITE (LUN,*) 'TITLE="RCM-LFM: T='//time_string//'"' WRITE (LUN,*) 'VARIABLES="I","J","COLAT","ALOCT","MLT","BNDLOC","XMIN","YMIN","VM", "BMIN",& &"V", "BIRK", "PEDLAM", "PEDPSI","HALL","EFLUX","EAVG","Prcm,nPa",PVgamma' WRITE (LUN,*) 'ZONE T="RCM-2D-'//time_string//'" I=', isize, ', J=',jsize,', F=POINT' WRITE (LUN,'(A,A,A)') 'AUXDATA T="', time_string, '"' WRITE (LUN,'(A,F5.1,A)') 'AUXDATA PCP="', label%real(16), '"' WRITE (LUN,'(A,A,A)') 'AUXDATA RUN="', run_id_string, '"' WRITE (LUN,'(A,F5.1,A)') 'AUXDATA IMF_Bz="', label%real(19), '"' WRITE (LUN,'(A,F5.1,A)') 'AUXDATA Kp="', label%real(17), '"' WRITE (LUN,'(A,F6.1,A)') 'AUXDATA Dst="', label%real(14), '"' WRITE (LUN,'(A,F5.1,A)') 'AUXDATA P_dyn="', label%real(11), '"' WRITE (LUN,'(A,A4,A1,A2,A1,A2,A1,A2,A1,A2,A1,A2,A1)') & 'AUXDATA Time_created='//'"', & char_date(1:4), '/', char_date(5:6), '/', char_date(7:8), ' ', & char_time(1:2), ':', char_time(3:4), ':', char_time(5:6), '"' DO j = 1, jsize DO i = 1, isize WRITE (LUN,*) i, j, colat(i,j)*rtd, aloct(i,j), MODULO(aloct(i,j)*rth+12.0,24.01),& bndloc(j), xmin(i,j), ymin(i,j), vm(i,j), bmin(i,j), & v(i,j), birk(i,j), pedlam(i,j), pedpsi(i,j), hall(i,j), eflux(i,j,1), eavg(i,j,1),& pressrcm(i,j), pvgamma_total(i,j) END DO END DO CLOSE (LUN) END IF IF (Do_3d) THEN OPEN (UNIT=LUN, FILE = rcmdir//rcm_tec_subdir//filename_out_3d, STATUS='REPLACE') WRITE (LUN,*) 'TITLE="RCM-LFM: T='//time_string//'"' WRITE (LUN,*) 'VARIABLES="I","J","K", "COLAT","ALOCT","MLT","BNDLOC","XMIN","YMIN","VM", "BMIN",& &"V", "BIRK", "Prcm,nPa","EETA"' ! WRITE (LUN,*) 'ZONE T="RCM-3D-'//time_string//'" I=', isize, ', J=',jsize, ', K=', kcsize,', F=POINT' WRITE (LUN,'(A,A,A)') 'AUXDATA T="', time_string, '"' WRITE (LUN,'(A,F5.1,A)') 'AUXDATA PCP="', label%real(16), '"' WRITE (LUN,'(A,A,A)') 'AUXDATA RUN="', run_id_string, '"' WRITE (LUN,'(A,F5.1,A)') 'AUXDATA IMF_Bz="', label%real(19), '"' WRITE (LUN,'(A,F5.1,A)') 'AUXDATA Kp="', label%real(17), '"' WRITE (LUN,'(A,F6.1,A)') 'AUXDATA Dst="', label%real(14), '"' WRITE (LUN,'(A,F5.1,A)') 'AUXDATA P_dyn="', label%real(11), '"' WRITE (LUN,'(A,A4,A1,A2,A1,A2,A1,A2,A1,A2,A1,A2,A1)') & 'AUXDATA Time_created='//'"', & char_date(1:4), '/', char_date(5:6), '/', char_date(7:8), ' ', & char_time(1:2), ':', char_time(3:4), ':', char_time(5:6), '"' DO k = 1, kcsize DO j = 1, jsize DO i = 1, isize WRITE (LUN,*) i, j, k, colat(i,j)*rtd, aloct(i,j), MODULO(aloct(i,j)*rth+12.0,24.01),& bndloc(j), xmin(i,j), ymin(i,j), vm(i,j), bmin(i,j), & v(i,j), birk(i,j), pressrcm(i,j),eeta(i,j,k) END DO END DO END DO ! CLOSE (LUN) END IF ! ! END DO ! ! ! STOP END PROGRAM Convert_rcm_to_tecplot