Changeset 2109
- Timestamp:
- Mar 4, 2019, 4:03:08 PM (6 years ago)
- Location:
- trunk/LMDZ.TITAN
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/README
r2099 r2109 1552 1552 Fix a problem of interoperability C-Fortran for picky compilers. 1553 1553 Using iso_c_binding could be a smart future improvement to bring. 1554 1555 == 04/03/19 == JVO (r2109) 1556 Fix some problems for the microphysics : 1557 + Altitude of the last level at 1e7m from physics was certainly source of divergence 1558 + Sanity check for negative is moved from within mm_microphysic to the end of calmufi avoiding rounding pbs -
trunk/LMDZ.TITAN/libf/muphytitan/mm_haze.f90
r1897 r2109 126 126 IF (mm_w_haze_prod) THEN 127 127 call mm_haze_production(zdm0as,zdm3as) 128 ! We only produce fractal aerosols128 ! We only produce spherical aerosols 129 129 dm0a_s=dm0a_s+zdm0as ; dm3a_s=dm3a_s+zdm3as 130 130 ENDIF -
trunk/LMDZ.TITAN/libf/muphytitan/mm_microphysic.f90
r1926 r2109 111 111 ! add temporary aerosols tendencies (-> m-3) 112 112 dm0a_f = dm0a_f + zdm0a_f ; dm3a_f = dm3a_f + zdm3a_f 113 ! reverse directlyclouds tendencies (-> m-2)113 ! reverse clouds tendencies (-> m-2) 114 114 dm0n = dm0n(mm_nla:1:-1) * mm_dzlev(mm_nla:1:-1) 115 115 dm3n = dm3n(mm_nla:1:-1) * mm_dzlev(mm_nla:1:-1) 116 ! sanity check for clouds tendencies117 WHERE (mm_m0ccn+dm0n < 0) ; dm0n = -mm_m0ccn ; END WHERE118 WHERE (mm_m3ccn+dm3n < 0) ; dm3n = -mm_m3ccn ; END WHERE119 116 DO i=1,mm_nesp 120 117 dm3i(:,i) = dm3i(mm_nla:1:-1,i) * mm_dzlev(mm_nla:1:-1) 121 WHERE (mm_m3ice+dm3i < 0) ; dm3i = -mm_m3ice ; END WHERE122 118 dgazs(:,i) = dgazs(mm_nla:1:-1,i) 123 ! no sanity check for gazs, let's prey.124 119 ENDDO 125 120 ELSE … … 131 126 dm0a_f = dm0a_f(mm_nla:1:-1) * mm_dzlev(mm_nla:1:-1) 132 127 dm3a_f = dm3a_f(mm_nla:1:-1) * mm_dzlev(mm_nla:1:-1) 133 ! sanity check134 WHERE (mm_m0aer_s+dm0a_s < 0) ; dm0a_s = -mm_m0aer_s ; END WHERE135 WHERE (mm_m3aer_s+dm3a_f < 0) ; dm3a_s = -mm_m3aer_s ; END WHERE136 WHERE (mm_m0aer_f+dm0a_f < 0) ; dm0a_f = -mm_m0aer_f ; END WHERE137 WHERE (mm_m3aer_f+dm3a_f < 0) ; dm3a_f = -mm_m3aer_f ; END WHERE138 128 139 129 RETURN … … 170 160 dm0a_f = dm0a_f(mm_nla:1:-1) * mm_dzlev(mm_nla:1:-1) 171 161 dm3a_f = dm3a_f(mm_nla:1:-1) * mm_dzlev(mm_nla:1:-1) 172 ! sanity check173 WHERE (mm_m0aer_s+dm0a_s < 0) ; dm0a_s = -mm_m0aer_s ; END WHERE174 WHERE (mm_m3aer_s+dm3a_f < 0) ; dm3a_s = -mm_m3aer_s ; END WHERE175 WHERE (mm_m0aer_f+dm0a_f < 0) ; dm0a_f = -mm_m0aer_f ; END WHERE176 WHERE (mm_m3aer_f+dm3a_f < 0) ; dm3a_f = -mm_m3aer_f ; END WHERE177 162 RETURN 178 163 END FUNCTION muphys_nocld -
trunk/LMDZ.TITAN/libf/phytitan/calmufi.F90
r1947 r2109 31 31 REAL(kind=8), DIMENSION(:,:), INTENT(IN) :: temp !! Temperature at the center of each layer (K). 32 32 33 REAL(kind=8), DIMENSION(:,:,:), INTENT(IN) :: pq !! Tracers (\( kg.kg^{-1}}\)).34 REAL(kind=8), DIMENSION(:,:,:), INTENT(IN) :: zdqfi !! Tendency from former processes for tracers (\( kg.kg^{-1}}\)).35 REAL(kind=8), DIMENSION(:,:,:), INTENT(OUT) :: zdq !! Microphysical tendency for tracers (\( kg.kg^{-1}}\)).33 REAL(kind=8), DIMENSION(:,:,:), INTENT(IN) :: pq !! Tracers (\(X.kg^{-1}}\)). 34 REAL(kind=8), DIMENSION(:,:,:), INTENT(IN) :: zdqfi !! Tendency from former processes for tracers (\(X.kg^{-1}}\)). 35 REAL(kind=8), DIMENSION(:,:,:), INTENT(OUT) :: zdq !! Microphysical tendency for tracers (\(X.kg^{-1}}\)). 36 36 37 REAL(kind=8), DIMENSION(:,:,:), ALLOCATABLE :: zq !! Local tracers updated from former processes (\( kg.kg^{-1}}\)).37 REAL(kind=8), DIMENSION(:,:,:), ALLOCATABLE :: zq !! Local tracers updated from former processes (\(X.kg^{-1}}\)). 38 38 39 39 REAL(kind=8), DIMENSION(:), ALLOCATABLE :: m0as !! 0th order moment of the spherical mode (\(m^{-2}\)). … … 56 56 REAL(kind=8), DIMENSION(:,:), ALLOCATABLE :: dgazs !! Tendencies of each condensible gaz species !(\(mol.mol^{-1}\)). 57 57 58 REAL(kind=8), DIMENSION(:,:), ALLOCATABLE :: int2ext 58 REAL(kind=8), DIMENSION(:,:), ALLOCATABLE :: int2ext !! (\(m^{-2}\)). 59 59 TYPE(error) :: err 60 60 … … 165 165 enddo 166 166 endif 167 168 ! Sanity check ( way safer to be done here rather than within YAMMS ) 169 WHERE (zq+zdq < 0.0) ; zdq = -zq ; END WHERE 170 167 171 END DO ! loop on ilon 168 172 -
trunk/LMDZ.TITAN/libf/phytitan/physiq_mod.F90
r2098 r2109 1082 1082 1083 1083 if (callmufi) then 1084 zzlev(:,nlayer+1)=zzlay(:,nlayer)+(zzlay(:,nlayer)-zzlev(:,nlayer)) ! JVO 19 : We assume zzlev isn't reused later on 1084 1085 #ifdef USE_QTEST 1085 1086 dtpq(:,:,:) = 0.0 ! we want tpq to go only through mufi … … 1087 1088 tpq(:,:,:) = tpq(:,:,:) + zdqmufi(:,:,:)*ptimestep ! only manipulation of tpq->*ptimestep here 1088 1089 #else 1089 call calmufi(ptimestep,pplev,zzlev,pplay,zzlay,gzlat,pt,pq,pdq,zdqmufi) ! JVO 19 : To be fixed, what altitude do we need ?1090 call calmufi(ptimestep,pplev,zzlev,pplay,zzlay,gzlat,pt,pq,pdq,zdqmufi) 1090 1091 pdq(:,:,:) = pdq(:,:,:) + zdqmufi(:,:,:) 1091 1092 #endif
Note: See TracChangeset
for help on using the changeset viewer.