subroutine output use ModFiles use ModIndices use ModConductance use ModEField implicit none include "mpif90.h" integer :: i, j, n integer, dimension(7) :: itime integer :: year, month, day, hour, minute, second character (len=100) :: form n = iteration_number call time_real_to_int(currenttime, itime) year = itime(1) month = itime(2) day = itime(3) hour = itime(4) minute = itime(5) second = itime(6) if (IsOutputBinary) then write(LunMainOutput) iteration_number,year,month,day,hour,minute write(LunMainOutput) Indices(n,sw_v_),Indices(n,imf_bx_), & Indices(n,imf_by_), Indices(n,imf_bz_), 0.0, & Indices(n,ae_), Indices(n,au_), Indices(n,al_), & Indices(n,dst_in_), Indices(n,dst_), Indices(n,hpi_calc_), & 0.0, & (maxval(EField_Solution(:,:,potential_)) - & minval(EField_Solution(:,:,potential_))) write(LunMainOutput) & ((EField_Solution(j,i,potential_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((Calculated_Total_Pedersen(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((Calculated_Auroral_Pedersen(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((Calculated_Total_Hall(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((Calculated_Auroral_Hall(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((Calculated_Average_Energy(j,i),j=0,lonmx),i=0,ithtrns) ! The 1000 is to convert from eV/cm2/s to W/m2 write(LunMainOutput) & ((Calculated_Energy_Flux(j,i)/1000.0,j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((EField_Solution(j,i,efield_east_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((EField_Solution(j,i,efield_north_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((EField_Solution(j,i,current_east_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((EField_Solution(j,i,current_North_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((EField_Solution(j,i,current_horizontal_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((JouleHeating(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((Model_Average_Energy(j,i),j=0,lonmx),i=0,ithtrns) ! The 1000 is to convert from eV/cm2/s to W/m2 write(LunMainOutput) & ((Model_Energy_Flux(j,i)/1000.0,j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((Model_Total_Pedersen(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput) & ((Model_Total_Hall(j,i),j=0,lonmx),i=0,ithtrns) ! The 1000 is to convert from kV to V write(LunMainOutput) & ((Efield_BGModel(j,i,potential_)*1000.0,j=0,lonmx),i=0,ithtrns) else write(LunMainOutput,'(6I6)') iteration_number,year,month,day,hour,minute write(LunMainOutput,'(1p,13e15.7)') Indices(n,sw_v_),Indices(n,imf_bx_), & Indices(n,imf_by_), Indices(n,imf_bz_), 0.0, & Indices(n,ae_), Indices(n,au_), Indices(n,al_), & Indices(n,dst_in_), Indices(n,dst_), Indices(n,hpi_calc_), & 0.0, & (maxval(EField_Solution(:,:,potential_)) - & minval(EField_Solution(:,:,potential_))) write(form,'(a,i2,a)') '(1p,',lonmx+1,'e15.7)' write(LunMainOutput,form) & ((EField_Solution(j,i,potential_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((Calculated_Total_Pedersen(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((Calculated_Auroral_Pedersen(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((Calculated_Total_Hall(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((Calculated_Auroral_Hall(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((Calculated_Average_Energy(j,i),j=0,lonmx),i=0,ithtrns) ! The 1000 is to convert from eV/cm2/s to W/m2 write(LunMainOutput,form) & ((Calculated_Energy_Flux(j,i)/1000.0,j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((EField_Solution(j,i,efield_east_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((EField_Solution(j,i,efield_north_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((EField_Solution(j,i,current_east_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((EField_Solution(j,i,current_north_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((EField_Solution(j,i,current_horizontal_),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((JouleHeating(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((Model_Average_Energy(j,i),j=0,lonmx),i=0,ithtrns) ! The 1000 is to convert from eV/cm2/s to W/m2 write(LunMainOutput,form) & ((Model_Energy_Flux(j,i)/1000.0,j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((Model_Total_Pedersen(j,i),j=0,lonmx),i=0,ithtrns) write(LunMainOutput,form) & ((Model_Total_Hall(j,i),j=0,lonmx),i=0,ithtrns) ! The 1000 is to convert from kV to V write(LunMainOutput,form) & ((Efield_BGModel(j,i,potential_)*1000.0,j=0,lonmx),i=0,ithtrns) endif end subroutine output