Changeset 3962 for trunk/LMDZ.PLUTO/libf/phypluto
- Timestamp:
- Nov 17, 2025, 11:02:59 AM (3 months ago)
- Location:
- trunk/LMDZ.PLUTO/libf/phypluto
- Files:
-
- 2 edited
-
mp2m_calmufi.F90 (modified) (9 diffs)
-
physiq_mod.F90 (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/phypluto/mp2m_calmufi.F90
r3957 r3962 1 1 MODULE mp2m_calmufi 2 2 use tracer_h 3 use comcstfi_mod, only : mugaz 3 use comcstfi_mod, only : mugaz, cpp 4 4 use callkeys_mod, only : call_haze_prod_pCH4, haze_rho,& 5 5 callmuclouds … … 44 44 CONTAINS 45 45 46 SUBROUTINE calmufi(dt, plev, zlev, play, zlay, g3d, temp, pq, zdqfi, zdqmufi_prod, zdqmufi )46 SUBROUTINE calmufi(dt, plev, zlev, play, zlay, g3d, temp, pq, zdqfi, zdqmufi_prod, zdqmufi, zdtcond) 47 47 !! Interface subroutine to YAMMS model for LMD PCM. 48 48 !! … … 62 62 REAL(kind=8), DIMENSION(:,:,:), INTENT(IN) :: zdqmufi_prod ! Aerosols production tendency (kg/kg_of_air/s). 63 63 REAL(kind=8), DIMENSION(:,:,:), INTENT(OUT) :: zdqmufi ! Microphysical tendency for tracers (X.m-2 --> X.kg-1.s-1). 64 REAL(kind=8), DIMENSION(:,:), INTENT(OUT) :: zdtcond ! Condensation heating rate (K.s-1). 64 65 65 66 ! Local tracers: … … 90 91 REAL(kind=8), DIMENSION(:,:), ALLOCATABLE :: dm3ices ! Tendencies of the 3rd order moments of each ice components (m3.m-2). 91 92 REAL(kind=8), DIMENSION(:,:), ALLOCATABLE :: dmugases ! Tendencies of each condensible gas species (mol.mol-1). 93 REAL(kind=8), DIMENSION(:), ALLOCATABLE :: dtlc ! Latent heat of condensation (J.kg-1). 92 94 93 95 ! Local variables: … … 129 131 ALLOCATE(dm3ices(nlay,nmicro_ices)) 130 132 ALLOCATE(dmugases(nlay,nmicro_ices)) 133 ALLOCATE(dtlc(nlay)) 131 134 132 135 ALLOCATE(int2ext(nlon,nlay)) … … 138 141 ! Initialization of zdqmufi here since intent=out and no action performed on every tracers 139 142 zdqmufi(:,:,:) = 0.D0 143 144 ! Initialization of zdtcond here since intent=out 145 zdtcond(:,:) = 0.D0 140 146 141 147 ! Initialize tracers updated with former processes from physics … … 191 197 192 198 ! Initializes tendencies 193 dm0as(:) = 0._mm_wp ; dm3as(:) = 0._mm_wp ; dm0af(:) = 0._mm_wp ; dm3af(:)= 0._mm_wp199 dm0as(:) = 0._mm_wp ; dm3as(:) = 0._mm_wp ; dm0af(:) = 0._mm_wp ; dm3af(:) = 0._mm_wp 194 200 dm0ccn(:) = 0._mm_wp ; dm3ccn(:) = 0._mm_wp ; dm3ices(:,:) = 0._mm_wp ; dmugases(:,:) = 0._mm_wp 201 dtlc(:) = 0._mm_wp 195 202 196 203 !---------------------------- … … 200 207 ! Call microphysics 201 208 if (callmuclouds) then 202 if(.NOT.mm_muphys(m3as_prod,dm0as,dm3as,dm0af,dm3af,dm0ccn,dm3ccn,dm3ices,dmugases )) then209 if(.NOT.mm_muphys(m3as_prod,dm0as,dm3as,dm0af,dm3af,dm0ccn,dm3ccn,dm3ices,dmugases,dtlc)) then 203 210 call abort_program(error("mm_muphys (clouds) aborted -> initialization not done !",-1)) 204 211 endif … … 232 239 zdqmufi(ilon,:,micro_gas_indx(i)) = dmugases(:,i) * (mmol(micro_gas_indx(i))/mugaz) 233 240 enddo 241 242 ! Compute condensation heating rate in K.s-1 243 zdtcond(ilon,:) = dtlc(:) / cpp / dt 234 244 endif ! End of callmuclouds 235 245 -
trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90
r3957 r3962 411 411 real pdqmufi_prod(ngrid,nlayer,nq) ! Aerosols production tendency (kg/kg_of_air/s). 412 412 real int2ext(ngrid,nlayer) ! Intensive to extensive factor (kg_air/m3: X/kg_air --> X/m3). 413 real zdtcond(ngrid,nlayer) ! Condensation heating rate (K.s-1). 413 414 414 415 ! Local variables for LOCAL CALCULATIONS: … … 1617 1618 pdqmufi(:,:,:) = 0. 1618 1619 1619 call calmufi(ptimestep,pplev,zzlev,pplay,zzlay,gzlat,pt,pq,pdq,pdqmufi_prod,pdqmufi )1620 call calmufi(ptimestep,pplev,zzlev,pplay,zzlay,gzlat,pt,pq,pdq,pdqmufi_prod,pdqmufi,zdtcond) 1620 1621 1621 1622 pdq(:,:,:) = pdq(:,:,:) + pdqmufi(:,:,:) … … 2536 2537 call write_output("m3"//TRIM(str(6:)),"Volume of "//TRIM(str(6:))//" ice","m3.m-3",zq(:,:,micro_ice_indx(iq))*int2ext(:,:)) 2537 2538 enddo 2539 call write_output("dtcond","Condensation heating rate","K.s-1",zdtcond(:,:)) 2538 2540 2539 2541 ! Diagnostics:
Note: See TracChangeset
for help on using the changeset viewer.
