Changeset 3985
- Timestamp:
- Dec 8, 2025, 2:19:07 PM (4 months ago)
- Location:
- trunk/LMDZ.COMMON
- Files:
-
- 1 added
- 12 edited
-
libf/evolution/NS_dyn_ss_ice_m.F90 (modified) (1 diff)
-
libf/evolution/adsorption_mod.F90 (modified) (2 diffs)
-
libf/evolution/changelog.txt (modified) (1 diff)
-
libf/evolution/glaciers_mod.F90 (modified) (3 diffs)
-
libf/evolution/ice_table_mod.F90 (modified) (1 diff)
-
libf/evolution/orbit_param_criterion_mod.F90 (modified) (1 diff)
-
libf/evolution/pem.F90 (modified) (6 diffs)
-
libf/evolution/pemetat0.F90 (modified) (3 diffs)
-
libf/evolution/phys_constants.F90 (added)
-
libf/evolution/recomp_orb_param_mod.F90 (modified) (1 diff)
-
libf/evolution/stopping_crit_mod.F90 (modified) (1 diff)
-
libf/evolution/tracers.F90 (modified) (4 diffs)
-
makelmdz_fcm (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/evolution/NS_dyn_ss_ice_m.F90
r3961 r3985 23 23 use constants_marspem_mod, only: sec_per_sol 24 24 use fast_subs_mars, only: psv, icelayer_mars, NMAX 25 use comcstfi_h,only: pi25 use phys_constants, only: pi 26 26 implicit none 27 27 integer, parameter :: NP=1 ! # of sites -
trunk/LMDZ.COMMON/libf/evolution/adsorption_mod.F90
r3961 r3985 89 89 use vertical_layers_mod, only: ap, bp 90 90 use constants_marspem_mod, only: alpha_clap_h2o, beta_clap_h2o, m_h2o, m_co2,m_noco2, rho_regolith 91 use comcstfi_h,only: pi91 use phys_constants, only: pi 92 92 93 93 implicit none … … 222 222 use vertical_layers_mod, only: ap, bp 223 223 use constants_marspem_mod, only: m_co2, m_noco2, rho_regolith 224 use comcstfi_h,only: pi224 use phys_constants, only: pi 225 225 226 226 implicit none -
trunk/LMDZ.COMMON/libf/evolution/changelog.txt
r3984 r3985 820 820 == 08/12/2025 == JBC 821 821 Addition of a module "tracers" to retain properties of atmospheric tracers. 822 823 == 08/12/2025 == JBC 824 Addition of a module "phys_constants" to read and store physical parameter of the planet properly, i.e. without going through the module "comcstfi_h" and/or "comconst_mod". -
trunk/LMDZ.COMMON/libf/evolution/glaciers_mod.F90
r3983 r3985 29 29 SUBROUTINE set_perice4PCM(ngrid,nslope,PCMfrost,is_perh2oice,PCMh2oice,PCMco2ice) 30 30 31 use metamorphism, only: iPCM_h2ofrost 32 use comslope_mod, only: subslope_dist, def_slope_mean 33 #ifndef CPP_1D 34 use comconst_mod, only: pi 35 #else 36 use comcstfi_h, only: pi 37 #endif 31 use metamorphism, only: iPCM_h2ofrost 32 use comslope_mod, only: subslope_dist, def_slope_mean 33 use phys_constants, only: pi 34 38 35 39 36 implicit none … … 189 186 SUBROUTINE compute_hmaxglaciers(ngrid,nslope,iflat,def_slope_mean,Tice,name_ice,hmax) 190 187 191 use ice_table_mod, only: rho_ice192 use abort_pem_mod, only: abort_pem193 use comcstfi_h,only: pi, g188 use ice_table_mod, only: rho_ice 189 use abort_pem_mod, only: abort_pem 190 use phys_constants, only: pi, g 194 191 195 192 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 252 249 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 253 250 254 use ice_table_mod, only: rho_ice255 use abort_pem_mod, only: abort_pem256 use comcstfi_h,only: pi251 use ice_table_mod, only: rho_ice 252 use abort_pem_mod, only: abort_pem 253 use phys_constants, only: pi 257 254 258 255 implicit none -
trunk/LMDZ.COMMON/libf/evolution/ice_table_mod.F90
r3961 r3985 152 152 use comslope_mod, only: subslope_dist, def_slope_mean 153 153 use constants_marspem_mod, only: porosity 154 use comcstfi_h,only: pi154 use phys_constants, only: pi 155 155 156 156 implicit none -
trunk/LMDZ.COMMON/libf/evolution/orbit_param_criterion_mod.F90
r3961 r3985 24 24 #endif 25 25 use planete_h, only: e_elips, obliquit, lsperi 26 use comcstfi_h,only: pi26 use phys_constants, only: pi 27 27 use time_evol_mod, only: year_bp_ini, var_obl, var_ecc, var_lsp, convert_years 28 28 use lask_param_mod, only: yearlask, obllask, ecclask, lsplask, ini_lask_param_mod, last_ilask -
trunk/LMDZ.COMMON/libf/evolution/pem.F90
r3984 r3985 86 86 use planete_h, only: year_day 87 87 use surfini_mod, only: surfini 88 use comcstfi_h, only: mugaz89 88 use metamorphism, only: ini_frost_id, set_frost4PCM, iPCM_h2ofrost, iPCM_co2frost 90 use tracers, only: mmol 89 use tracers, only: mmol, iPCM_qh2o, ini_tracers_id, end_tracers 90 use phys_constants, only: pi, g, r, mugaz, rad, cpp, rcp, read_constants 91 91 92 92 #ifndef CPP_1D 93 use comconst_mod, only: pi, rad, g, r, cpp, rcp => kappa94 93 use iniphysiq_mod, only: iniphysiq 95 94 use control_mod, only: iphysiq, day_step, nsplit_phys 96 95 #else 97 use comcstfi_h, only: pi, rad, g, r, cpp, rcp98 96 use time_phylmdz_mod, only: iphysiq, steps_per_sol 99 97 use regular_lonlat_mod, only: init_regular_lonlat … … 141 139 real :: time_0 142 140 143 ! Variables to read star fi.nc141 ! Variables to read startfi.nc 144 142 character(*), parameter :: startfi_name = "startfi.nc" ! Name of the file used to initialize the PEM 145 143 character(2) :: str2 … … 364 362 ! I_b Read of the "start.nc" and "starfi.nc" 365 363 !------------------------ 364 call read_constants(startfi_name) 365 366 366 ! I_b.1 Read "start.nc" 367 367 write(*,*) '> Reading "start.nc"' … … 385 385 status = nf90_close(ncid) 386 386 387 ! Initialization of physics constants and variables (comcstfi_h)387 ! Initialization of physics constants and variables 388 388 call iniphysiq(iim,jjm,llm,(jjm - 1)*iim + 2,comm_lmdz,daysec,day_ini,dtphys/nsplit_phys,rlatu,rlatv,rlonu,rlonv,aire,cu,cv,rad,g,r,cpp,iflag_phys) 389 389 #else … … 763 763 tsoil_PEM_timeseries(ig,isoil,islope,t) = tsoil_PEM_timeseries(ig,isoil,islope,t)*tsoil_PEM(ig,isoil,islope)/tsoil_avg_old(ig,isoil) 764 764 ! Update of watersoil density 765 watersoil_density_PEM_timeseries(ig,isoil,islope,t) = exp(beta_clap_h2o/tsoil_PEM_timeseries(ig,isoil,islope,t) + alpha_clap_h2o)/tsoil_PEM_timeseries(ig,isoil,islope,t)* mmol%h2o/(mugaz*r)765 watersoil_density_PEM_timeseries(ig,isoil,islope,t) = exp(beta_clap_h2o/tsoil_PEM_timeseries(ig,isoil,islope,t) + alpha_clap_h2o)/tsoil_PEM_timeseries(ig,isoil,islope,t)**mmol(iPCM_qh2o)/(mugaz*r) 766 766 if (isnan(tsoil_PEM(ig,isoil,islope))) call abort_pem("PEM - Update Tsoil","NaN detected in tsoil_PEM",1) 767 767 enddo … … 1129 1129 deallocate(q,longitude,latitude,cell_area,tsoil_PEM) 1130 1130 deallocate(co2_ice,h2o_ice,layerings_map) 1131 call end_tracers() 1131 1132 !----------------------------- END OUTPUT ------------------------------ 1132 1133 -
trunk/LMDZ.COMMON/libf/evolution/pemetat0.F90
r3984 r3985 23 23 use callkeys_mod, only: startphy_file 24 24 use glaciers_mod, only: rho_co2ice, rho_h2oice 25 use comcstfi_h, only: r, mugaz, pi25 use phys_constants, only: pi, r, mugaz 26 26 use surfdat_h, only: watercaptag, perennial_co2ice, qsurf 27 27 use metamorphism, only: frost4PCM, iPCM_h2ofrost, iPCM_co2frost 28 use tracers, only: mmol 28 use tracers, only: mmol, iPCM_qh2o 29 29 30 30 implicit none … … 296 296 endif !found 297 297 298 watersoil_avg(:,nsoil_PCM + 1:nsoil_PEM,islope) = exp(beta_clap_h2o/tsoil_PEM(:,nsoil_PCM + 1:nsoil_PEM,islope) + alpha_clap_h2o)/tsoil_PEM(:,nsoil_PCM + 1:nsoil_PEM,islope)*mmol(i gcm_h2o_vap)/(mugaz*r)298 watersoil_avg(:,nsoil_PCM + 1:nsoil_PEM,islope) = exp(beta_clap_h2o/tsoil_PEM(:,nsoil_PCM + 1:nsoil_PEM,islope) + alpha_clap_h2o)/tsoil_PEM(:,nsoil_PCM + 1:nsoil_PEM,islope)*mmol(iPCM_qh2o)/(mugaz*r) 299 299 enddo ! islope 300 300 write(*,*) 'PEMETAT0: TSOIL done' … … 469 469 470 470 ! First raw initialization 471 watersoil_avg(:,nsoil_PCM + 1:nsoil_PEM,islope) = exp(beta_clap_h2o/tsoil_PEM(:,nsoil_PCM + 1:nsoil_PEM,islope) + alpha_clap_h2o)/tsoil_PEM(:,nsoil_PCM + 1:nsoil_PEM,islope)* mmol%h2o/(mugaz*r)471 watersoil_avg(:,nsoil_PCM + 1:nsoil_PEM,islope) = exp(beta_clap_h2o/tsoil_PEM(:,nsoil_PCM + 1:nsoil_PEM,islope) + alpha_clap_h2o)/tsoil_PEM(:,nsoil_PCM + 1:nsoil_PEM,islope)**mmol(iPCM_qh2o)/(mugaz*r) 472 472 enddo !islope 473 473 write(*,*) 'PEMETAT0: TSOIL done' -
trunk/LMDZ.COMMON/libf/evolution/recomp_orb_param_mod.F90
r3980 r3985 17 17 use time_evol_mod, only: year_bp_ini, var_obl, var_ecc, var_lsp 18 18 use lask_param_mod, only: yearlask, obllask, ecclask, lsplask, end_lask_param_mod, last_ilask 19 use comcstfi_h,only: pi19 use phys_constants, only: pi 20 20 use planete_h, only: e_elips, obliquit, lsperi, periheli, aphelie, p_elips, peri_day, year_day 21 21 use call_dayperi_mod, only: call_dayperi -
trunk/LMDZ.COMMON/libf/evolution/stopping_crit_mod.F90
r3980 r3985 220 220 SUBROUTINE stopping_crit_h2o(ngrid,nslope,cell_area,delta_h2o_adsorbed,delta_h2o_icetablesublim,h2o_ice,d_h2oice,S_atm_2_h2o,S_h2o_2_atm,S_atm_2_h2oice,S_h2oice_2_atm,stopCrit) 221 221 222 use time_evol_mod, only: dt223 use comslope_mod, only: subslope_dist, def_slope_mean224 use comcstfi_h,only: pi222 use time_evol_mod, only: dt 223 use comslope_mod, only: subslope_dist, def_slope_mean 224 use phys_constants, only: pi 225 225 226 226 implicit none -
trunk/LMDZ.COMMON/libf/evolution/tracers.F90
r3984 r3985 7 7 8 8 ! Molar masses of tracers 9 type :: mmol 10 real :: h2o 11 end type mmol 9 real, dimension(:), allocatable :: mmol 12 10 13 11 !======================================================================= … … 30 28 ! Code 31 29 !----- 30 ! Allocation 31 call ini_tracers(nqtot) 32 32 33 ! Initialization 33 34 iPCM_qh2o = -1 … … 35 36 ! Getting the index 36 37 do i = 1,nqtot 37 if (noms( nnq) == "h2o_vap") then38 iPCM_qh2o = nnq39 mmol %h2o= 18.38 if (noms(i) == "h2o_vap") then 39 iPCM_qh2o = i 40 mmol(i) = 18. 40 41 endif 41 42 enddo … … 44 45 if (iPCM_qh2o < 0) error stop 'ini_frost_id: H2O vapour index not found!' 45 46 46 END SUBROUTINE ini_frost_id 47 END SUBROUTINE ini_tracers_id 48 !======================================================================= 49 50 SUBROUTINE ini_tracers(nqtot) 51 52 implicit none 53 54 ! Arguments 55 !---------- 56 integer, intent(in) :: nqtot 57 58 ! Local variables 59 !---------------- 60 61 ! Code 62 !----- 63 if (.not. allocated(mmol)) allocate(mmol(nqtot)) 64 65 END SUBROUTINE ini_tracers 66 !======================================================================= 67 68 SUBROUTINE end_tracers() 69 70 implicit none 71 72 ! Arguments 73 !---------- 74 75 ! Local variables 76 !---------------- 77 78 ! Code 79 !----- 80 if (allocated(mmol)) deallocate(mmol) 81 82 END SUBROUTINE end_tracers 47 83 48 84 END MODULE tracers -
trunk/LMDZ.COMMON/makelmdz_fcm
r3872 r3985 505 505 fi 506 506 507 if [[ -d ${LIBFGCM}/evolution && "$code" == "reshape_XIOS_output" ]]508 then509 if [[ "$physique" == "std" ]]510 then511 CPP_KEY="$CPP_KEY CPP_STD"512 fi513 EVOLUTION_PATH="${LIBFGCM}/evolution"514 INCLUDE="$INCLUDE -I${LIBFGCM}/evolution"515 fi516 517 507 518 508 # NETCDF library include/library paths
Note: See TracChangeset
for help on using the changeset viewer.
