Changeset 5082 for LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis
- Timestamp:
- Jul 19, 2024, 5:41:58 PM (16 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis
- Files:
-
- 7 edited
-
inlandsis.F (modified) (12 diffs)
-
sisvat_gsn.F (modified) (1 diff)
-
sisvat_qsn.F (modified) (1 diff)
-
sisvat_sno_albedo.F (modified) (2 diffs)
-
sisvat_ts2.F (modified) (6 diffs)
-
sisvat_weq.F (modified) (2 diffs)
-
sisvat_zsn.F (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/inlandsis.F
r3900 r5082 409 409 IF (BloMod) THEN 410 410 411 if (klonv .eq.1) then412 if(isnoSV(1) .ge.2 .and.411 if (klonv==1) then 412 if(isnoSV(1)>=2 .and. 413 413 . TsisSV(1,max(1,isnoSV(1)))<273. .and. 414 414 . ro__SV(1,max(1,isnoSV(1)))<500. .and. … … 518 518 C + Gallee et al., 2001 eq 5, p5 519 519 520 if (usth_param .eq."gal") then520 if (usth_param == "gal") then 521 521 Salt_us = (log(2.868) - log(1 + SaltMo)) * rCd10n/0.085 522 522 Salt_us = Salt_us * Fac_Mo … … 525 525 endif 526 526 527 if (usth_param .eq."lis") then !Liston et al. 2007527 if (usth_param == "lis") then !Liston et al. 2007 528 528 if(ro__SV(ikl,isn)>300.) then 529 529 Salt_us = 0.005*exp(0.013*ro__SV(ikl,isn)) … … 607 607 hSalSV(ikl) = 8.436e-2 * us__SV(ikl)**SblPom 608 608 609 if (qsalt_param .eq."pom") then609 if (qsalt_param == "pom") then 610 610 qSalSV(ikl) = (us__SV(ikl)**2 - usthSV(ikl)**2) *signus 611 611 . / (hSalSV(ikl) * gravit * us__SV(ikl) * 3.25) 612 612 endif 613 613 614 if (qsalt_param .eq."bin") then614 if (qsalt_param == "bin") then 615 615 qSalSV(ikl) = (us__SV(ikl) * us__SV(ikl) 616 616 . -usthSV(ikl) * usthSV(ikl))*signus … … 668 668 C + ... [ A compromise between 669 669 C + ... Kotlyakov (1961) and Lenaerts (2012, JGR, Part1) ] 670 if (tt_tmp .ge.-10) then670 if (tt_tmp>=-10) then 671 671 BufPro = max( rosMin, 672 672 . 104. *sqrt( max( vv_tmp-6.0,0.0))) ! Kotlyakov (1961) … … 894 894 895 895 896 if (discret_xf.AND.klonv .eq.1) then897 898 if(isnoSV(1) .ge.1.or.NLaysv(1).ge.1) then896 if (discret_xf.AND.klonv==1) then 897 898 if(isnoSV(1)>=1.or.NLaysv(1)>=1) then 899 899 C + ********** 900 900 call SISVAT_zSn … … 1081 1081 1082 1082 1083 if (iflag_temp_inlandsis .eq.0) then1083 if (iflag_temp_inlandsis == 0) then 1084 1084 1085 1085 call SISVAT_TSo … … 1198 1198 ! ^^^^^^^^^^^^^^^^^^^^ 1199 1199 1200 IF (iflag_tsurf_inlandsis .EQ. 0) THEN1200 IF (iflag_tsurf_inlandsis == 0) THEN 1201 1201 1202 1202 Tsrfsv(ikl) =TsisSV(ikl,isnoSV(ikl)) 1203 1203 1204 ELSE IF (iflag_tsurf_inlandsis .GT.0) THEN1204 ELSE IF (iflag_tsurf_inlandsis > 0) THEN 1205 1205 ! Etienne: extrapolation from the two uppermost levels: 1206 1206 … … 1208 1208 zm1=-dzsnSV(ikl,isnoSV(ikl))/2. 1209 1209 zm2=-(dzsnSV(ikl,isnoSV(ikl)) + dzsnSV(ikl,isnoSV(ikl)-1)/2.) 1210 else if (isnoSV(ikl) .EQ.1) then1210 else if (isnoSV(ikl) == 1) then 1211 1211 zm1=-dzsnSV(ikl,isnoSV(ikl))/2. 1212 1212 zm2=-(dzsnSV(ikl,isnoSV(ikl))+dz_dSV(0)/2.) … … 1236 1236 IF (SnoMod) THEN 1237 1237 1238 if (discret_xf .AND. klonv .eq.1) then1239 if(isnoSV(1) .ge.1) then1238 if (discret_xf .AND. klonv==1) then 1239 if(isnoSV(1)>=1) then 1240 1240 C + ********** 1241 1241 call SISVAT_GSn … … 1305 1305 ! Calculation of snow roughness length 1306 1306 !===================================== 1307 IF (iflag_z0m_snow .EQ.0) THEN1307 IF (iflag_z0m_snow == 0) THEN 1308 1308 1309 1309 Z0m_Sn=prescribed_z0m_snow 1310 1310 1311 ELSE IF (iflag_z0m_snow .EQ.1) THEN1311 ELSE IF (iflag_z0m_snow == 1) THEN 1312 1312 1313 1313 Z0m_Sn=Z0enSV(ikl) 1314 1314 1315 ELSE IF (iflag_z0m_snow .EQ. 2) THEN1315 ELSE IF (iflag_z0m_snow == 2) THEN 1316 1316 1317 1317 C +--Rough Snow Surface Roughness Length (Variable Sastrugi Height) … … 1336 1336 coefd = log(z03)-coefc*ta3 1337 1337 1338 if (TaT_SV(ikl) .lt.ta1) then1338 if (TaT_SV(ikl) < ta1) then 1339 1339 Z0_obs = z01 1340 else if (TaT_SV(ikl) .ge.ta1 .and. TaT_SV(ikl).lt.ta2) then1340 else if (TaT_SV(ikl)>=ta1 .and. TaT_SV(ikl)<ta2) then 1341 1341 Z0_obs = exp(coefa*TaT_SV(ikl) + coefb) 1342 else if (TaT_SV(ikl) .ge.ta2 .and. TaT_SV(ikl).lt.ta3) then1342 else if (TaT_SV(ikl)>=ta2 .and. TaT_SV(ikl)<ta3) then 1343 1343 ! if st > 0, melting induce smooth surface 1344 1344 Z0_obs = exp(coefc*TaT_SV(ikl) + coefd) -
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_gsn.F
r3792 r5082 805 805 DO ikl=1,knonv 806 806 DO isn=iiceSV(ikl),isnoSV(ikl) 807 IF (G1snSV(ikl,isn) .ge.0.) THEN808 IF(G1snSV(ikl,isn) .lt.vsphe4.and.istoSV(ikl,isn).eq.0) THEN807 IF (G1snSV(ikl,isn)>=0.) THEN 808 IF(G1snSV(ikl,isn)<vsphe4.and.istoSV(ikl,isn)==0) THEN 809 809 istoSV(ikl,isn)=istdSV(1) 810 ELSEIF(G1_dSV-G1snSV(ikl,isn) .lt.vsphe4.and.811 . etaSno(ikl,isn)/dzsnSV(ikl,isn) .gt.vtelv1) THEN812 IF (istoSV(ikl,isn) .eq.0)810 ELSEIF(G1_dSV-G1snSV(ikl,isn) <vsphe4.and. 811 . etaSno(ikl,isn)/dzsnSV(ikl,isn)>vtelv1) THEN 812 IF (istoSV(ikl,isn)==0) 813 813 . istoSV(ikl,isn)= istdSV(2) 814 IF (istoSV(ikl,isn) .eq.istdSV(1))814 IF (istoSV(ikl,isn)==istdSV(1)) 815 815 . istoSV(ikl,isn)= istdSV(3) 816 ELSEIF(TsisSV(ikl,isn) .lt.TfSnow) THEN817 IF (istoSV(ikl,isn) .eq.istdSV(2))816 ELSEIF(TsisSV(ikl,isn)<TfSnow) THEN 817 IF (istoSV(ikl,isn)==istdSV(2)) 818 818 . istoSV(ikl,isn)= istdSV(4) 819 IF (istoSV(ikl,isn) .eq.istdSV(3))819 IF (istoSV(ikl,isn)==istdSV(3)) 820 820 . istoSV(ikl,isn)= istdSV(5) 821 821 END IF -
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_qsn.F
r3900 r5082 438 438 END DO 439 439 440 IF (isnitr .GT.0) GO TO 1000440 IF (isnitr>0) GO TO 1000 441 441 442 442 -
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_sno_albedo.F
r3980 r5082 218 218 219 219 220 IF (iflag_albcalc .GE.1) THEN ! Albedo calculation according to Kokhanovsky and Zege 2004220 IF (iflag_albcalc >= 1) THEN ! Albedo calculation according to Kokhanovsky and Zege 2004 221 221 222 222 dalbed = 0.0 … … 752 752 alb30 = exp(-(alpha**0.5)* 3.0 / 7.0 * (1.0 + 20 * cos30)) 753 753 754 IF ((wavelengths(i) .GE.lambdamin).AND.755 . (wavelengths(i) .LT.lambdamax)) THEN754 IF ((wavelengths(i)>=lambdamin).AND. 755 . (wavelengths(i)<lambdamax)) THEN 756 756 albint=albint+R*Pas ! rectangle integration -> can be improved with trapezintegration 757 757 norm=norm+Pas -
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_ts2.F
r3792 r5082 207 207 208 208 DO ig=1,knonv 209 IF (isnoSV(ig) .GT.0) THEN210 IF (isnoSV(ig) .GT.1) THEN209 IF (isnoSV(ig)>0) THEN 210 IF (isnoSV(ig)>1) THEN 211 211 mug(ig)=1./(1.+dzsnSV(ig,isnoSV(ig)-1)/dzsnSV(ig,isnoSV(ig))) !mu 212 212 ELSE … … 217 217 ENDIF 218 218 219 IF (mug(ig) .LE.0.05) THEN219 IF (mug(ig) <= 0.05) THEN 220 220 write(*,*)'Attention mu low', mug(ig) 221 221 ENDIF 222 IF (mug(ig) .GE.0.98) THEN222 IF (mug(ig) >= 0.98) THEN 223 223 write(*,*)'Attention mu high', mug(ig) 224 224 ENDIF … … 331 331 332 332 DO ig = 1,knonv 333 IF (ps__SV(ig) .LT.1.) THEN333 IF (ps__SV(ig)<1.) THEN 334 334 ! write(*,*)'ig',ig,'ps',ps__SV(ig) 335 335 ps__SV(ig)=max(ps__SV(ig),1.e-8) 336 336 ENDIF 337 IF (p1l_SV(ig) .LT.1.) THEN337 IF (p1l_SV(ig)<1.) THEN 338 338 ! write(*,*)'ig',ig,'p1l',p1l_SV(ig) 339 339 p1l_SV(ig)=max(p1l_SV(ig),1.e-8) 340 340 ENDIF 341 IF (TaT_SV(ig) .LT.180.) THEN341 IF (TaT_SV(ig)<180.) THEN 342 342 ! write(*,*)'ig',ig,'TaT',TaT_SV(ig) 343 343 TaT_SV(ig)=max(TaT_SV(ig),180.) 344 344 ENDIF 345 IF (QaT_SV(ig) .LT.1.e-8) THEN345 IF (QaT_SV(ig)<1.e-8) THEN 346 346 ! write(*,*)'ig',ig,'QaT',QaT_SV(ig) 347 347 QaT_SV(ig)=max(QaT_SV(ig),1.e-8) 348 348 ENDIF 349 IF (Tsf_SV(ig) .LT.100.) THEN349 IF (Tsf_SV(ig)<100.) THEN 350 350 ! write(*,*)'ig',ig,'Tsf',Tsf_SV(ig) 351 351 Tsf_SV(ig)=max(Tsf_SV(ig),180.) 352 352 ENDIF 353 IF (Tsf_SV(ig) .GT.500.) THEN353 IF (Tsf_SV(ig)>500.) THEN 354 354 ! write(*,*)'ig',ig,'Tsf',Tsf_SV(ig) 355 355 Tsf_SV(ig)=min(Tsf_SV(ig),400.) … … 359 359 ! Tsrf(ig)=max(Tsrf(ig),TaT_SV(ig)-20.) 360 360 ! ENDIF 361 IF (cdH_SV(ig) .LT.1.e-10) THEN361 IF (cdH_SV(ig)<1.e-10) THEN 362 362 ! IF (ig.le.3) write(*,*)'ig',ig,'cdH',cdH_SV(ig) 363 363 cdH_SV(ig)=.5 … … 380 380 & /LhvH2O / zx_pkh(ig) 381 381 ELSE 382 IF (Tsf_SV(ig) .LT.t_coup) THEN382 IF (Tsf_SV(ig)<t_coup) THEN 383 383 zx_qs = qsats(Tsf_SV(ig)) / ps__SV(ig) 384 384 zx_dq_s_dh = dqsats(Tsf_SV(ig),zx_qs)/LhvH2O & … … 408 408 DO ig = 1,knonv 409 409 zx_sl(ig) = LhvH2O 410 IF (Tsf_SV(ig) .LT.RTT) zx_sl(ig) = LhsH2O410 IF (Tsf_SV(ig) < RTT) zx_sl(ig) = LhsH2O 411 411 zx_k1(ig) = zx_coef(ig) 412 412 ENDDO -
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_weq.F
r3792 r5082 58 58 59 59 ikl = 1 60 IF (isnoSV(ikl) .gt.iiceSV(ikl)) THEN60 IF (isnoSV(ikl)>iiceSV(ikl)) THEN 61 61 62 62 SnoWEQ = 0. … … 71 71 C + ===================== 72 72 73 IF (iiceSV(1) .gt.0) THEN73 IF (iiceSV(1)>0) THEN 74 74 75 75 IceWEQ = 0. -
LMDZ6/branches/Amaury_dev/libf/phylmd/inlandsis/sisvat_zsn.F
r3900 r5082 459 459 DO isn=nsno,2,-1 460 460 DO ikl=1,knonv 461 IF (Agrege(ikl) .gt.0..AND.i_thin(ikl).lt.isnoSV(ikl)) THEN461 IF (Agrege(ikl)>0..AND.i_thin(ikl)<isnoSV(ikl)) THEN 462 462 staggr = min(1,max(0,isn-i_thin(ikl) -1)) 463 463 . * min(1,max(0, isnoSV(ikl)-isn+2))
Note: See TracChangeset
for help on using the changeset viewer.
