Changeset 5618 for LMDZ6/branches/contrails/libf/phylmdiso
- Timestamp:
- Apr 15, 2025, 11:56:45 AM (3 months ago)
- Location:
- LMDZ6/branches/contrails
- Files:
-
- 1 deleted
- 4 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/contrails
- Property svn:mergeinfo changed
/LMDZ6/trunk merged: 5451,5458,5460,5463,5468-5487,5490-5496,5499-5520,5524-5526,5528,5531,5544,5554-5557,5559-5562,5569-5572,5578,5582-5585,5597
- Property svn:mergeinfo changed
-
LMDZ6/branches/contrails/libf/phylmdiso/phyetat0_mod.F90
r5536 r5618 549 549 it = 0 550 550 DO iq = 1, nqtot 551 IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE551 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 552 552 it = it+1 553 553 tname = tracers(iq)%name -
LMDZ6/branches/contrails/libf/phylmdiso/phyredem.F90
r5536 r5618 370 370 it = 0 371 371 DO iq = 1, nqtot 372 IF(.NOT. (tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE372 IF(.NOT.tracers(iq)%isInPhysics) CYCLE 373 373 it = it+1 374 374 CALL put_field(pass,"trs_"//tracers(iq)%name, "", trs(:, it)) -
LMDZ6/branches/contrails/libf/phylmdiso/physiq_mod.F90
r5536 r5618 39 39 USE ioipsl_getin_p_mod, ONLY : getin_p 40 40 USE indice_sol_mod 41 USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, type_trac,addPhase, ivap, iliq, isol 41 USE infotrac_phy, ONLY: nqtot, nbtr, nqo, tracers, type_trac,addPhase, ivap, iliq, isol, ibs, icf, irvc 42 42 USE strings_mod, ONLY: strIdx 43 43 USE iophy … … 83 83 USE lmdz_atke_turbulence_ini, ONLY : atke_ini 84 84 USE lmdz_thermcell_ini, ONLY : thermcell_ini, iflag_thermals_tenv 85 USE calltherm_mod, ONLY : calltherm 85 86 USE lmdz_thermcell_dtke, ONLY : thermcell_dtke 86 87 USE lmdz_blowing_snow_ini, ONLY : blowing_snow_ini , qbst_bs … … 133 134 USE lmdz_xios, ONLY: xios_set_current_context 134 135 use wxios_mod, ONLY: missing_val, using_xios 136 USE lmdz_spla_ini, ONLY : spla_ini 135 137 136 138 #ifndef CPP_XIOS … … 290 292 cldh, cldl,cldm, cldq, cldt, & 291 293 JrNt, & 292 dthmin, evap, snowerosion, fder, plcl, plfc, &294 dthmin, evap, snowerosion, icesub_lic, fder, plcl, plfc, & 293 295 prw, prlw, prsw, prbsw, water_budget, & 294 296 s_lcl, s_pblh, s_pblt, s_therm, & … … 579 581 !====================================================================== 580 582 ! 581 ! indices de traceurs eau vapeur, liquide, glace, fraction nuageuse LS (optional), blowing snow (optional)582 ! INTEGER,SAVE :: ivap, iliq, isol, irneb, ibs583 !!$OMP THREADPRIVATE(ivap, iliq, isol, irneb, ibs)584 ! Camille Risi 25 juillet 2023: ivap,iliq,isol deja definis dans infotrac_phy.585 ! Et ils sont utiles ailleurs que dans physiq_mod (ex:586 ! reevap -> je commente les 2 lignes au dessus et je laisse la definition587 ! plutot dans infotrac_phy588 INTEGER,SAVE :: irneb, ibs, icf,irvc589 !$OMP THREADPRIVATE(irneb, ibs, icf,irvc)590 !591 583 ! 592 584 ! Variables argument: … … 1121 1113 1122 1114 REAL picefra(klon,klev) 1123 REAL zrel_oro(klon)1115 REAL nm_oro(klon) 1124 1116 !IM cf. AM 081204 END 1125 1117 ! … … 1459 1451 1460 1452 IF (first) THEN 1461 ivap = strIdx(tracers(:)%name, addPhase('H2O', 'g'))1462 iliq = strIdx(tracers(:)%name, addPhase('H2O', 'l'))1463 isol = strIdx(tracers(:)%name, addPhase('H2O', 's'))1464 ibs = strIdx(tracers(:)%name, addPhase('H2O', 'b'))1465 icf = strIdx(tracers(:)%name, addPhase('H2O', 'f'))1466 irvc = strIdx(tracers(:)%name, addPhase('H2O', 'c'))1467 1453 ! CALL init_etat0_limit_unstruct 1468 1454 IF (.NOT. create_etat0_limit) CALL init_limit_read(days_elapsed) … … 2031 2017 IF (CPPKEY_DUST) THEN 2032 2018 ! Quand on utilise SPLA, on force iflag_phytrac=1 2019 CALL spla_ini(is_oce,RNAVO,RG,RD,RCPD,RLVTT,RLSTT,RETV,RTT, & 2020 R2ES,R3LES,R3IES,R4LES,R4IES,R5LES,R5IES,RVTMP2) 2033 2021 CALL phytracr_spl_out_init() 2034 2022 CALL phys_output_write_spl(itap, pdtphys, paprs, pphis, & … … 3318 3306 !albedo SB >>> 3319 3307 ! albsol1, albsol2, sens, evap, & 3320 albsol_dir, albsol_dif, sens, evap, snowerosion, &3308 albsol_dir, albsol_dif, sens, evap, snowerosion, icesub_lic, & 3321 3309 !albedo SB <<< 3322 3310 albsol3_lic,runoff, snowhgt, qsnow, to_ice, sissnow, & … … 4748 4736 endif 4749 4737 4750 CALL calltherm( pdtphys &4738 CALL calltherm(itap, pdtphys & 4751 4739 ,pplay,paprs,pphi,weak_inversion & 4752 4740 ! ,u_seri,v_seri,t_seri,q_seri,zqsat,debut & !jyg … … 6283 6271 ! a l'echelle sous-maille: 6284 6272 ! 6273 6274 ! calculation of nm_oro 6275 DO i=1,klon 6276 ! nm_oro is a proxy for the number of subgrid scale mountains 6277 ! -> condition on nm_oro can deactivate the lifting on tilted planar terrains 6278 ! such as ice sheets (work by V. Wiener) 6279 ! in such a case, the SSO scheme should activate only where nm_oro>0 i.e. by setting 6280 ! nm_oro_t=0. 6281 nm_oro(i)=zsig(i)*sqrt(cell_area(i)*(pctsrf(i,is_ter)+pctsrf(i,is_lic)))/(4.*MAX(zstd(i),1.e-8))-1. 6282 END DO 6283 6285 6284 IF (prt_level .GE.10) THEN 6286 6285 print *,' call orography ? ', ok_orodr 6287 6286 ENDIF 6288 ! 6287 6289 6288 IF (ok_orodr) THEN 6290 6289 ! … … 6293 6292 DO i=1,klon 6294 6293 itest(i)=0 6295 zrel_oro(i)=zstd(i)/(max(zsig(i),1.E-8)*sqrt(cell_area(i)))6296 !zrel_oro: relative mountain height wrt relief explained by mean slope6297 ! -> condition on zrel_oro can deactivate the drag on tilted planar terrains6298 ! such as ice sheets (work by V. Wiener)6299 6294 ! zpmm_orodr_t and zstd_orodr_t are activation thresholds set by F. Lott to 6300 6295 ! earn computation time but they are not physical. 6301 IF (((zpic(i)-zmea(i)).GT.zpmm_orodr_t).AND.(zstd(i).GT.zstd_orodr_t).AND.( zrel_oro(i).LE.zrel_oro_t)) THEN6296 IF (((zpic(i)-zmea(i)).GT.zpmm_orodr_t).AND.(zstd(i).GT.zstd_orodr_t).AND.(nm_oro(i).GT.nm_oro_t)) THEN 6302 6297 itest(i)=1 6303 6298 igwd=igwd+1 … … 6352 6347 DO i=1,klon 6353 6348 itest(i)=0 6354 !zrel_oro: relative mountain height wrt relief explained by mean slope 6355 ! -> condition on zrel_oro can deactivate the lifting on tilted planar terrains 6356 ! such as ice sheets (work by V. Wiener) 6357 zrel_oro(i)=zstd(i)/(max(zsig(i),1.E-8)*sqrt(cell_area(i))) 6358 IF (((zpic(i)-zmea(i)).GT.zpmm_orolf_t).AND.(zrel_oro(i).LE.zrel_oro_t)) THEN 6349 IF (((zpic(i)-zmea(i)).GT.zpmm_orolf_t).AND.(nm_oro(i).GT.nm_oro_t)) THEN 6359 6350 itest(i)=1 6360 6351 igwd=igwd+1 … … 6630 6621 ! car on peut s'attendre a ce que les petites echelles produisent aussi de la TKE 6631 6622 ! Mais attention, cela ne va pas dans le sens de la conservation de l'energie! 6632 IF ((zstd(i).GT.1.0) .AND.( zrel_oro(i).LE.zrel_oro_t)) THEN6623 IF ((zstd(i).GT.1.0) .AND.(nm_oro(i).GT.nm_oro_t)) THEN 6633 6624 itest(i)=1 6634 6625 igwd=igwd+1 … … 6642 6633 DO i=1,klon 6643 6634 itest(i)=0 6644 IF (((zpic(i)-zmea(i)).GT.zpmm_orodr_t).AND.(zstd(i).GT.zstd_orodr_t).AND.( zrel_oro(i).LE.zrel_oro_t)) THEN6635 IF (((zpic(i)-zmea(i)).GT.zpmm_orodr_t).AND.(zstd(i).GT.zstd_orodr_t).AND.(nm_oro(i).GT.nm_oro_t)) THEN 6645 6636 itest(i)=1 6646 6637 igwd=igwd+1
Note: See TracChangeset
for help on using the changeset viewer.