Changeset 3962 for trunk/LMDZ.PLUTO/libf/muphypluto
- Timestamp:
- Nov 17, 2025, 11:02:59 AM (5 weeks ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.PLUTO/libf/muphypluto/mp2m_microphysics.F90
r3957 r3962 22 22 USE MP2M_CLOUDS 23 23 USE MP2M_METHODS 24 USE MP2M_CLOUDS_METHODS 24 25 IMPLICIT NONE 25 26 … … 35 36 CONTAINS 36 37 37 FUNCTION muphys_all(m3as_prod,dm0as,dm3as,dm0af,dm3af,dm0ccn,dm3ccn,dm3ices,dmugases ) RESULT(ret)38 FUNCTION muphys_all(m3as_prod,dm0as,dm3as,dm0af,dm3af,dm0ccn,dm3ccn,dm3ices,dmugases,dtlc) RESULT(ret) 38 39 !! Compute the evolution of moments tracers through haze microphysics processes. 39 40 !! … … 48 49 !! before the latter are called to initialize a new step. 49 50 !! 50 51 51 ! Production of the 3rd order moment of the spherical mode distribution (m3.m-2). 52 52 REAL(kind=mm_wp), INTENT(in), DIMENSION(:) :: m3as_prod … … 67 67 ! Tendencies of each condensible gaz species (mol.mol-1). 68 68 REAL(kind=mm_wp), INTENT(inout), DIMENSION(:,:) :: dmugases 69 ! Latent heat of condensation (J.kg-1). 70 REAL(kind=mm_wp), INTENT(inout), DIMENSION(:) :: dtlc 69 71 70 72 ! .true. on succes (i.e. model has been initialized at least once previously), .false. otherwise. 71 73 LOGICAL :: ret 72 74 73 ! Local variables. 75 ! Local variables: 76 !~~~~~~~~~~~~~~~~~ 74 77 INTEGER :: i 75 78 ! Production of the spherical aerosols (m3.m-3). … … 82 85 ALLOCATE(m3a_s_prod(mm_nla)) 83 86 84 ! Sanity check for initialization 87 ! Sanity check for initialization: 88 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 85 89 ret = (mm_ini_col.AND.mm_ini_aer) 86 90 if (.NOT.ret) then … … 95 99 m3a_s_prod = m3as_prod(mm_nla:1:-1) / mm_dzlev(:) 96 100 97 ! Calls haze microphysics (/!\ tendencies in X/m-3) 101 ! Initialize latent heat 102 dtlc(:) = 0._mm_wp 103 104 ! Calls haze microphysics (/!\ tendencies in X/m-3): 105 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 106 call mm_haze_microphysics(m3a_s_prod,Hdm0as,Hdm3as,Hdm0af,Hdm3af) 99 107 100 ! Calls cloud microphysics (/!\ tendencies in X/m-3) 108 ! Calls cloud microphysics (/!\ tendencies in X/m-3): 109 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 101 110 if (mm_call_clouds) then 102 111 call mm_cloud_microphysics(Hdm0as,Hdm3as,Hdm0af,Hdm3af,& … … 110 119 dm3ices(:,i) = dm3ices(mm_nla:1:-1,i) * mm_dzlev(mm_nla:1:-1) 111 120 dmugases(:,i) = dmugases(mm_nla:1:-1,i) 121 122 ! Compute condensation heating rate 123 dtlc(:) = dtlc(:) + (dmugases(:,i) * mm_xESPS(i)%fmol2fmas * mm_LheatX(mm_temp,mm_xESPS(i))) 112 124 enddo 113 125 114 126 else 115 Cdm0as(:) = 0._mm_wp ; Cdm3as(:) = 0._mm_wp ; Cdm0af(:) = 0._mm_wp ; Cdm3af(:)= 0._mm_wp127 Cdm0as(:) = 0._mm_wp ; Cdm3as(:) = 0._mm_wp ; Cdm0af(:) = 0._mm_wp ; Cdm3af(:) = 0._mm_wp 116 128 dm0ccn(:) = 0._mm_wp ; dm3ccn(:) = 0._mm_wp ; dm3ices(:,:) = 0._mm_wp ; dmugases(:,:) = 0._mm_wp 129 dtlc(:) = 0._mm_wp 117 130 endif ! end of mm_call_clouds 118 131 … … 140 153 !! before the latter are called to initialize a new step. 141 154 !! 142 143 155 ! Production of the 3rd order moment of the spherical mode distribution (m3.m-2). 144 156 REAL(kind=mm_wp), INTENT(in), DIMENSION(:) :: m3as_prod … … 155 167 LOGICAL :: ret 156 168 157 ! Local variables. 169 ! Local variables: 170 !~~~~~~~~~~~~~~~~~ 158 171 ! Production of the spherical aerosols (m3.m-3). 159 172 REAL(kind=mm_wp), DIMENSION(:), ALLOCATABLE :: m3a_s_prod 160 173 ALLOCATE(m3a_s_prod(mm_nla)) 161 174 162 ! Sanity check for initialization 175 ! Sanity check for initialization: 176 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 163 177 ret = (mm_ini_col.AND.mm_ini_aer) 164 178 if (.NOT.ret) then … … 173 187 m3a_s_prod = m3as_prod(mm_nla:1:-1) / mm_dzlev(:) 174 188 175 ! Calls haze microphysics 189 ! Calls haze microphysics (/!\ tendencies in X/m-3): 190 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 176 191 call mm_haze_microphysics(m3a_s_prod,dm0as,dm3as,dm0af,dm3af) 177 192
Note: See TracChangeset
for help on using the changeset viewer.
