- Timestamp:
- Mar 18, 2019, 4:27:59 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/libf/phytitan/physiq_mod.F90
r2109 r2117 522 522 ctimestep = ptimestep*REAL(ichim) 523 523 524 zdqchi(:,:,:) = 0.0525 526 524 endif 527 525 … … 1094 1092 ! Microphysics condensation for 2D fields to sent non-saturated fields to photochem 1095 1093 if ( callclouds .and. moyzon_ch .and. mod(icount-1,ichim).eq.0 ) then 1096 zdqfibar(:,:,:) = 0. 0 ! We work in zonal average -> forget processes other than condensation1094 zdqfibar(:,:,:) = 0.D0 ! We work in zonal average -> forget processes other than condensation 1097 1095 call calmufi(ptimestep,zplevbar,zzlevbar,zplaybar,zzlaybar, & 1098 1096 gzlat,ztfibar,zqfibar,zdqfibar,zdqmufibar) … … 1135 1133 call calc_ysat(ngrid,nlayer,pplay/100.0,pt,ysat) ! Compute saturation profiles for every grid point 1136 1134 1137 dyccond(:,:,:) = 0. 0 ! Default value -> no condensation1135 dyccond(:,:,:) = 0.D0 ! Default value -> no condensation 1138 1136 1139 1137 do iq=1,nkim … … 1142 1140 enddo 1143 1141 1144 if ( callclouds ) dyccond(:,:,ices_indx) = 0. 0 ! Condensation have been calculated in the cloud microphysics1142 if ( callclouds ) dyccond(:,:,ices_indx) = 0.D0 ! Condensation have been calculated in the cloud microphysics 1145 1143 1146 1144 do iq=1,nkim … … 1157 1155 call calc_ysat(ngrid,nlayer,zplaybar/100.0,ztfibar,ysat) ! Compute saturation profiles for every grid point for the zon-ave fields 1158 1156 1159 dyccondbar(:,:,:) = 0. 0 ! Default value -> no condensation1157 dyccondbar(:,:,:) = 0.D0 ! Default value -> no condensation 1160 1158 1161 1159 do iq = 1,nkim … … 1164 1162 enddo 1165 1163 1166 if ( callclouds ) dyccondbar(:,:,ices_indx) = 0. 0 ! Condensation have been calculated in the cloud microphysics1164 if ( callclouds ) dyccondbar(:,:,ices_indx) = 0.D0 ! Condensation have been calculated in the cloud microphysics 1167 1165 1168 1166 do iq=1,nkim … … 1172 1170 ! Pseudo-evap ( forcing constant surface humidity ) 1173 1171 do ig=1,ngrid 1174 if ( ychimbar(ig,1,7 +nmicro) .lt. botCH4 ) ychimbar(ig,1,7+nmicro) = botCH41172 if ( ychimbar(ig,1,7) .lt. botCH4 ) ychimbar(ig,1,7) = botCH4 1175 1173 enddo 1176 1174 … … 1198 1196 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1199 1197 do ig=1,ngrid 1200 if ( (ychim(ig,1,7 +nmicro)+dycchi(ig,1,7+nmicro)*ptimestep) .lt. botCH4 ) then ! +dycchi because ychim not yet updated1201 dycevapCH4(ig) = ( -ychim(ig,1,7 +nmicro)+botCH4 ) / ptimestep - dycchi(ig,1,7+nmicro)1198 if ( (ychim(ig,1,7)+dycchi(ig,1,7)*ptimestep) .lt. botCH4 ) then ! +dycchi because ychim not yet updated 1199 dycevapCH4(ig) = ( -ychim(ig,1,7)+botCH4 ) / ptimestep - dycchi(ig,1,7) 1202 1200 else 1203 dycevapCH4(ig) = 0. 01201 dycevapCH4(ig) = 0.D0 1204 1202 endif 1205 1203 enddo … … 1209 1207 ! v. Updates and positivity check 1210 1208 ! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1209 zdqchi(:,:,:) = 0.D0 ! -> for the microphysical tracers we need to update to 0 each time ;-) 1210 1211 1211 do iq=1,nkim 1212 1212 zdqchi(:,:,iq+nmicro) = dycchi(:,:,iq)*rat_mmol(iq+nmicro) ! convert tendencies to mass mixing ratio 1213 1213 1214 1214 where( (pq(:,:,iq+nmicro) + ( pdq(:,:,iq+nmicro)+zdqchi(:,:,iq+nmicro) )*ptimestep ) .LT. 0.) & ! When using zonal means we set the same tendency 1215 zdqchi(:,:,iq+nmicro) = 1. e-30 - pdq(:,:,iq+nmicro) - pq(:,:,iq+nmicro)/ptimestep ! everywhere in longitude -> could lead to negs !1215 zdqchi(:,:,iq+nmicro) = 1.D-30 - pdq(:,:,iq+nmicro) - pq(:,:,iq+nmicro)/ptimestep ! everywhere in longitude -> could lead to negs ! 1216 1216 enddo 1217 1217
Note: See TracChangeset
for help on using the changeset viewer.