- Timestamp:
- Jan 14, 2026, 2:44:07 PM (2 weeks ago)
- File:
-
- 1 edited
-
LMDZ6/trunk/libf/phylmd/physiq_mod.F90 (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r6021 r6026 1242 1242 REAL, DIMENSION(klon,nbtr) :: init_source 1243 1243 1244 REAL, DIMENSION(klon,klev) :: cldfra_inca 1245 1244 1246 !lwoff=y : offset LW CRE for radiation code and other schemes 1245 1247 REAL, SAVE :: betalwoff … … 4154 4156 ENDIF 4155 4157 4156 ! plulsc(:)=0.4157 ! do k=1,klev,-14158 ! do i=1,klon4159 ! zzz=prfl(:,k)+psfl(:,k)4160 ! if (.not.ptconvth.zzz.gt.0.)4161 ! enddo prfl, psfl,4162 ! enddo4163 !4164 4158 ! 2. NUAGES STARTIFORMES 4165 4159 ! … … 4178 4172 ! Calculer l'humidite relative pour diagnostique 4179 4173 ! 4174 ! A inclure dans lmdz_call_lscp via un appel à lmdz_lscp_tools 4180 4175 DO k = 1, klev 4181 4176 DO i = 1, klon 4182 4177 zx_t = t_seri(i,k) 4183 4178 IF (thermcep) THEN 4184 !! if (iflag_ice_thermo.eq.0) then !jyg4185 4179 zdelta = MAX(0.,SIGN(1.,rtt-zx_t)) 4186 !! else !jyg4187 !! zdelta = MAX(0.,SIGN(1.,t_glace_min-zx_t)) !jyg4188 !! endif !jyg4189 4180 zx_qs = r2es * FOEEW(zx_t,zdelta)/pplay(i,k) 4190 4181 zx_qs = MIN(0.5,zx_qs) … … 4192 4183 zx_qs = zx_qs*zcor 4193 4184 ELSE 4194 !! IF (zx_t.LT.t_coup) THEN !jyg 4195 IF (zx_t.LT.rtt) THEN !jyg 4185 IF (zx_t.LT.rtt) THEN 4196 4186 zx_qs = qsats(zx_t)/pplay(i,k) 4197 4187 ELSE … … 4208 4198 ENDDO 4209 4199 4210 !IM Calcul temp.potentielle a 2m (tpot) et temp. potentielle4211 ! equivalente a 2m (tpote) pour diagnostique4212 !4213 DO i = 1, klon4214 tpot(i)=zt2m(i)*(100000./paprs(i,1))**RKAPPA4215 IF (thermcep) THEN4216 IF(zt2m(i).LT.RTT) then4217 Lheat=RLSTT4218 ELSE4219 Lheat=RLVTT4220 ENDIF4221 ELSE4222 IF (zt2m(i).LT.RTT) THEN4223 Lheat=RLSTT4224 ELSE4225 Lheat=RLVTT4226 ENDIF4227 ENDIF4228 tpote(i) = tpot(i)* &4229 EXP((Lheat *qsat2m(i))/(RCPD*zt2m(i)))4230 ENDDO4231 4232 4233 4234 4200 !=============================================================================== 4235 ! Aerosols and chemistry 4236 ! 4237 4238 4201 ! Interactive chemistry through coupling with INCA or REPROBUS chemistry models 4202 ! 4239 4203 4240 4204 IF (ANY(type_trac == ['inca','inco'])) THEN ! ModThL … … 4251 4215 4252 4216 zxsnow_dummy(:) = 0.0 4217 ! INCA needs a cloud fraction that is not necessarily that 4218 ! for radiation. Here we provide a cloud fraction calculated 4219 ! the same manner as that in LMDZ5, LMDZ6 and LMDZ7 4220 DO k=1,klev 4221 DO i=1,klon 4222 cldfra_inca(i,k)=min(rneb(i,k)+rnebcon(i,k),1.) 4223 ENDDO 4224 ENDDO 4225 4226 4253 4227 4254 4228 CALL chemhook_begin (calday, & … … 4278 4252 itop_con, & 4279 4253 ibas_con, & 4280 cldfra , &4254 cldfra_inca, & 4281 4255 nbp_lon, & 4282 4256 nbp_lat-1, & … … 4294 4268 END IF 4295 4269 ENDIF !type_trac = inca or inco 4270 4296 4271 IF (type_trac == 'repr') THEN 4297 4272 IF (CPPKEY_REPROBUS) THEN 4298 !CALL chemtime_rep(itap+itau_phy-1, date0, dtime, itap)4299 4273 CALL chemtime_rep(itap+itau_phy-1, date0, phys_tstep, itap) 4300 4274 END IF 4301 4275 ENDIF 4302 4276 4303 ! 4304 ! Appeler le rayonnement mais calculer tout d'abord l'albedo du sol. 4305 ! 4277 4278 !=============================================================================== 4279 ! Radiative scheme and associated aerosols 4280 ! 4281 ! Note that the following routines are called every radpas time steps 4282 4306 4283 IF (MOD(itaprad,radpas).EQ.0) THEN 4307 4284 … … 4661 4638 IF (carbon_cycle_rad) RCO2=RCO2_glo 4662 4639 ! 4663 4664 !===============================================================================4665 ! Radiative scheme4666 !4667 4640 4668 4641 … … 4855 4828 zxtsol(:) = zsav_tsol (:) 4856 4829 ENDIF 4857 ENDIF ! MOD(itaprad,radpas) 4830 4831 ENDIF ! MOD(itaprad,radpas) END LOOP every radpas timesteps 4858 4832 itaprad = itaprad + 1 4859 4833 … … 5146 5120 aam, torsfc) 5147 5121 ENDIF 5122 5123 5124 5148 5125 !IM cf. FLott END 5149 5126 !DC Calcul de la tendance due au methane … … 5300 5277 5301 5278 !==================================================================== 5302 ! Interface Simulateur COSP (Calipso, ISCCP, MISR, ..)5279 ! Interface COSP (Calipso, ISCCP, MISR, ..) and AIRS simulators 5303 5280 !==================================================================== 5304 5281 ! Abderrahmane 24.08.09 … … 5813 5790 5814 5791 !============================================================ 5815 ! Calcul de la temperature potentielle5792 ! Potential temperature calculation 5816 5793 !============================================================ 5817 5794 DO k = 1, klev 5818 5795 DO i = 1, klon 5819 ! JYG/IM theta en debut du pas de temps5820 ! JYG/IMtheta(i,k)=t(i,k)*(100000./pplay(i,k))**(RD/RCPD)5821 ! JYG/IM theta en fin de pas de temps de physique5796 !theta at the beginning of the time step is 5797 ! theta(i,k)=t(i,k)*(100000./pplay(i,k))**(RD/RCPD) 5798 !theta at the end of the physics time step is: 5822 5799 theta(i,k)=t_seri(i,k)*(100000./pplay(i,k))**(RD/RCPD) 5823 ! thetal: 2 lignes suivantes a decommenter si vous avez les fichiers5824 ! MPL 201306255825 ! fth_fonctions.F90 et parkind1.F905826 ! sinon thetal=theta5827 ! thetal(i,k)=fth_thetal(pplay(i,k),t_seri(i,k),q_seri(i,k),5828 ! : ql_seri(i,k))5829 5800 thetal(i,k)=theta(i,k) 5830 5801 ENDDO 5831 5802 ENDDO 5832 ! 5803 5804 5805 ! 2-m potential temperature and equivalent potential temperature 5806 ! for diagnostics 5807 DO i = 1, klon 5808 tpot(i)=zt2m(i)*(100000./paprs(i,1))**RKAPPA 5809 IF (thermcep) THEN 5810 IF(zt2m(i).LT.RTT) then 5811 Lheat=RLSTT 5812 ELSE 5813 Lheat=RLVTT 5814 ENDIF 5815 ELSE 5816 IF (zt2m(i).LT.RTT) THEN 5817 Lheat=RLSTT 5818 ELSE 5819 Lheat=RLVTT 5820 ENDIF 5821 ENDIF 5822 tpote(i) = tpot(i)* & 5823 EXP((Lheat *qsat2m(i))/(RCPD*zt2m(i))) 5824 ENDDO 5825 5826 5827 5833 5828 5834 5829 ! 22.03.04 BEG
Note: See TracChangeset
for help on using the changeset viewer.
