- Timestamp:
- Feb 10, 2026, 9:46:10 AM (2 weeks ago)
- Location:
- trunk/LMDZ.MARS
- Files:
-
- 10 edited
-
changelog.txt (modified) (1 diff)
-
libf/aeronomars/calchim_mod.F90 (modified) (3 diffs)
-
libf/aeronomars/surfacearea.F (modified) (2 diffs)
-
libf/phymars/conf_phys.F (modified) (2 diffs)
-
libf/phymars/physiq_mod.F (modified) (4 diffs)
-
libf/phymars/rocketduststorm_mod.F90 (modified) (1 diff)
-
libf/phymars/simpleclouds_mod.F (modified) (1 diff)
-
libf/phymars/topmons_mod.F90 (modified) (1 diff)
-
libf/phymars/vdif_kc.F (modified) (1 diff)
-
libf/phymars/write_output_mod.F90 (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.MARS/changelog.txt
r4057 r4058 5056 5056 == 09/02/2026 == EM 5057 5057 Minor OpenMP fix to dust coagulation. 5058 5059 == 10/02/2026 == EM 5060 Add a "output_diagfi" (default .true.) flag so that the user can decide if 5061 a diagfi.nc file should be outputted. 5062 Also do some cleaning around the few remaining calls to writediagfi 5063 or reference to it througout the code; write_output() should be used. 5064 -
trunk/LMDZ.MARS/libf/aeronomars/calchim_mod.F90
r3726 r4058 40 40 use iono_h, only: temp_elect 41 41 use wstats_mod, only: wstats 42 use write_output_mod, only: write_output 42 43 use callkeys_mod, only: photochem 43 44 … … 223 224 ! for output: 224 225 225 logical,save :: output ! to issue calls to write diagfiand stats226 logical,save :: output ! to issue calls to write_output and stats 226 227 real :: jo3_3d(ngrid,nlayer) ! Photodissociation rate O3->O1D (s-1) 227 228 real :: jh2o_3d(ngrid,nlayer) ! Photodissociation rate H2O->H+OH (s-1) … … 956 957 if (photochem .and. output) then 957 958 if (ngrid > 1) then 958 call writediagfi(ngrid,'jo3','j o3->o1d', & 959 's-1',3,jo3_3d(1,1)) 960 call writediagfi(ngrid,'jh2o','jh2o', & 961 's-1',3,jh2o_3d(1,1)) 962 call writediagfi(ngrid,'iter','iterations', & 963 ' ',3,iter_3d(1,1)) 964 965 ! if (.not. unichim) then 966 call writediagfi(ngrid,'emission_no', & 967 'NO nightglow emission rate','cm-3 s-1',3,emission_no) 968 call writediagfi(ngrid,'emission_o2', & 969 'O2 nightglow emission rate','cm-3 s-1',3,emission_o2) 970 ! endif 959 call write_output('jo3','j o3->o1d','s-1',jo3_3d) 960 call write_output('jh2o','jh2o','s-1',jh2o_3d) 961 call write_output('iter_chemistry','iterations',' ',iter_3d) 962 963 call write_output('emission_no', & 964 'NO nightglow emission rate','cm-3 s-1', & 965 emission_no) 966 call write_output('emission_o2', & 967 'O2 nightglow emission rate','cm-3 s-1', & 968 emission_o2) 971 969 972 call wstats(ngrid,'jo3','j o3->o1d', &970 call wstats(ngrid,'jo3','j o3->o1d', & 973 971 's-1',3,jo3_3d(1,1)) 974 call wstats(ngrid,'emission_no', &972 call wstats(ngrid,'emission_no', & 975 973 'NO nightglow emission rate','cm-3 s-1',3,emission_no) 976 call wstats(ngrid,'emission_o2', &974 call wstats(ngrid,'emission_o2', & 977 975 'O2 nightglow emission rate','cm-3 s-1',3,emission_o2) 978 call wstats(ngrid,'mmean','mean molecular mass', &976 call wstats(ngrid,'mmean','mean molecular mass', & 979 977 'g.mole-1',3,mmean(1,1)) 980 978 end if ! of if (ngrid.gt.1) -
trunk/LMDZ.MARS/libf/aeronomars/surfacearea.F
r3726 r4058 16 16 use comcstfi_h, only: pi 17 17 use wstats_mod, only: wstats 18 use write_output_mod, only: write_output 18 19 use callkeys_mod, only: microphys 19 20 implicit none … … 126 127 $ "micron2 cm-3",3,surfice*1.e6) 127 128 128 call write diagfi(ngrid,"surfdust","Dust surface area",129 $ "micron2 cm-3",3,surfdust*1.e6)130 call write diagfi(ngrid,"surfice","Ice cloud surface area",131 $ "micron2 cm-3",3,surfice*1.e6)129 call write_output("surfdust","Dust surface area", 130 & "micron2 cm-3",surfdust*1.e6) 131 call write_output("surfice","Ice cloud surface area", 132 & "micron2 cm-3",surfice*1.e6) 132 133 133 134 end subroutine surfacearea -
trunk/LMDZ.MARS/libf/phymars/conf_phys.F
r4054 r4058 73 73 & kernel_g,kernel_de,kernel_ti,coal_kg, 74 74 & fullcoag 75 use write_output_mod, only: output_diagfi 75 76 76 77 IMPLICIT NONE … … 176 177 write(*,*) " callstats = ",callstats 177 178 179 write(*,*) "Write atmospheric fields in file diagfi.nc ?" 180 output_diagfi=.true. ! default value 181 call getin_p("output_diagfi",output_diagfi) 182 write(*,*) " output_diagfi = ",output_diagfi 183 178 184 write(*,*) "Write sub-surface fields in file diagsoil.nc ?" 179 185 diagsoil=.false. ! default value -
trunk/LMDZ.MARS/libf/phymars/physiq_mod.F
r4054 r4058 3265 3265 #ifndef MESOINI 3266 3266 3267 c==========================================================3268 c WRITEDIAGFI: Outputs in netcdf file "DIAGFI", containing 3269 c any variable for diagnostic (output with period3270 c "ecritphy", set in "run.def")3271 c==========================================================3272 c WRITEDIAGFI can ALSObe called from any other subroutines3273 cfor any variables !!3267 ! ========================================================== 3268 ! write_output: Outputs in netcdf files, diagfi and/or diagsoil 3269 ! or via XIOS (variable should then be also defined 3270 ! in field_def_physics_mars.xml) 3271 ! ========================================================== 3272 ! write_output can be called from any other subroutines 3273 ! for any variables !! 3274 3274 call write_output("emis","Surface emissivity","", 3275 3275 & emis(:,iflat)) … … 3702 3702 endif ! (doubleq) 3703 3703 3704 if (rdstorm) then ! writediagfitendencies stormdust tracers3704 if (rdstorm) then ! output tendencies stormdust tracers 3705 3705 call write_output('reffstormdust','reffstormdust', 3706 3706 & 'm',rstormdust(:,:)*ref_r0) … … 3925 3925 c ---------------------------------------------------------- 3926 3926 3927 c ----------------------------------------------------------3928 c Output in netcdf file "diagsoil.nc" for subterranean3929 c variables (output every "ecritphy", as for writediagfi)3930 c ----------------------------------------------------------3931 3927 ! Write soil temperature 3932 3928 call write_output("soiltemp","Soil temperature","K", … … 4043 4039 4044 4040 c ========================================================== 4045 c END OF WRIT EDIAGFI4041 c END OF WRITING OUTPUTS 4046 4042 c ========================================================== 4047 4043 #endif -
trunk/LMDZ.MARS/libf/phymars/rocketduststorm_mod.F90
r3726 r4058 526 526 527 527 !======================================================================= 528 ! WRITEDIAGFI528 ! OUTPUTS 529 529 530 530 call write_output('rds_lapserate', & -
trunk/LMDZ.MARS/libf/phymars/simpleclouds_mod.F
r4007 r4058 222 222 end do 223 223 224 c if (hdo) then225 c CALL WRITEDIAGFI(ngrid,'alpha_c',226 c & 'alpha_c',227 c & ' ',3,alpha_c)228 c endif !hdo229 224 c------------------------------------------------------------------ 230 225 end subroutine simpleclouds -
trunk/LMDZ.MARS/libf/phymars/topmons_mod.F90
r4010 r4058 643 643 644 644 ! ********************************************************************** 645 ! WRITEDIAGFI645 ! OUTPUTS 646 646 ! ********************************************************************** 647 647 ! CALL write_output('wup_top', & -
trunk/LMDZ.MARS/libf/phymars/vdif_kc.F
r3727 r4058 627 627 c 628 628 629 ! call writediagfi(ngrid,'vdif_kc_q2','','',3,q2(:,1:nlay))630 ! call writediagfi(ngrid,'vdif_kc_km','','',3,km(:,1:nlay))631 ! call writediagfi(ngrid,'vdif_kc_kn','','',3,kn(:,1:nlay))632 ! call writediagfi(ngrid,'vdif_kc_unsdz','','',3,unsdz(:,1:nlay))633 ! call writediagfi(ngrid,'vdif_kc_unsddecz','','',3,634 ! & unsdzdec(:,1:nlay))635 ! call writediagfi(ngrid,'vdif_kc_q','','',3,q(:,1:nlay))636 ! call writediagfi(ngrid,'vdif_kc_kmpre','','',3,637 ! & kmpre(:,1:nlay))638 ! call writediagfi(ngrid,'vdif_kc_long','','',3,long(:,1:nlay))639 ! call writediagfi(ngrid,'vdif_kc_sn','','',3,sn(:,1:nlay))640 ! call writediagfi(ngrid,'vdif_kc_sm','','',3,sm(:,1:nlay))641 642 629 END SUBROUTINE vdif_kc 643 630 -
trunk/LMDZ.MARS/libf/phymars/write_output_mod.F90
r3225 r4058 13 13 public write_output 14 14 15 logical,public,save :: output_diagfi ! global flag to trigger generating 16 ! a diagfi.nc file or not. Initialized in conf_phys() 17 !$OMP THREADPRIVATE(output_diagfi) 18 19 15 20 !----------------------------------------------------------------------- 16 21 contains … … 37 42 logical :: is_active ! For XIOS, should this field be sent or not 38 43 39 call writediagfi(ngrid,field_name,title,units,0,(/field/))44 if (output_diagfi) call writediagfi(ngrid,field_name,title,units,0,(/field/)) 40 45 #ifdef CPP_XIOS 41 46 !is_active=xios_is_active_field(field_name) … … 69 74 logical :: is_active ! For XIOS, should this field be sent or not 70 75 71 call writediagfi(ngrid,field_name,title,units,2,field)76 if (output_diagfi) call writediagfi(ngrid,field_name,title,units,2,field) 72 77 #ifdef CPP_XIOS 73 78 !is_active=xios_is_active_field(field_name) … … 107 112 call writediagsoil(ngrid,field_name,title,units,3,field) 108 113 else 109 call writediagfi(ngrid,field_name,title,units,3,field)114 if (output_diagfi) call writediagfi(ngrid,field_name,title,units,3,field) 110 115 endif 111 116 … … 141 146 logical :: is_active ! For XIOS, should this field be sent or not 142 147 143 call writediagfi(ngrid,field_name,title,units,0,(/real(field)/)) 148 if (output_diagfi) call writediagfi(ngrid,field_name,title,units,0,(/real(field)/)) 149 144 150 #ifdef CPP_XIOS 145 151 !is_active=xios_is_active_field(field_name) … … 173 179 logical :: is_active ! For XIOS, should this field be sent or not 174 180 175 call writediagfi(ngrid,field_name,title,units,2,real(field)) 181 if (output_diagfi) call writediagfi(ngrid,field_name,title,units,2,real(field)) 182 176 183 #ifdef CPP_XIOS 177 184 !is_active=xios_is_active_field(field_name) … … 211 218 call writediagsoil(ngrid,field_name,title,units,3,real(field)) 212 219 else 213 call writediagfi(ngrid,field_name,title,units,3,real(field))220 if (output_diagfi) call writediagfi(ngrid,field_name,title,units,3,real(field)) 214 221 endif 215 222 #ifdef CPP_XIOS … … 248 255 if (field) field_real = 1. 249 256 250 call writediagfi(ngrid,field_name,title,units,0,field_real)257 if (output_diagfi) call writediagfi(ngrid,field_name,title,units,0,field_real) 251 258 #ifdef CPP_XIOS 252 259 !is_active=xios_is_active_field(field_name) … … 284 291 where (field) field_real = 1. 285 292 286 call writediagfi(ngrid,field_name,title,units,2,field_real) 293 if (output_diagfi) call writediagfi(ngrid,field_name,title,units,2,field_real) 294 287 295 #ifdef CPP_XIOS 288 296 !is_active=xios_is_active_field(field_name) … … 327 335 call writediagsoil(ngrid,field_name,title,units,3,field_real) 328 336 else 329 call writediagfi(ngrid,field_name,title,units,3,field_real)337 if (output_diagfi) call writediagfi(ngrid,field_name,title,units,3,field_real) 330 338 endif 331 339
Note: See TracChangeset
for help on using the changeset viewer.
