Changeset 1591 for trunk/LMDZ.VENUS/libf/phyvenus/clmain.F
- Timestamp:
- Aug 31, 2016, 4:31:29 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.VENUS/libf/phyvenus/clmain.F
r1543 r1591 291 291 c call coefkzmin(knon,ypaprs,ypplay,yu,yv,yt,ycoefm 292 292 c . ,ycoefm0,ycoefh0) 293 c call dump2d( iim,jjm-1,ycoefm(2:klon-1,2), 'KZ ')294 c call dump2d( iim,jjm-1,ycoefm0(2:klon-1,2),'KZMIN ')293 c call dump2d(nbp_lon,nbp_lat-2,ycoefm(2:klon-1,2), 'KZ ') 294 c call dump2d(nbp_lon,nbp_lat-2,ycoefm0(2:klon-1,2),'KZMIN ') 295 295 296 296 ycoefm0 = 1.e-3 … … 349 349 ENDIF 350 350 351 c iflag_pbl peut etre utilise comme longue r de melange351 c iflag_pbl peut etre utilise comme longueur de melange 352 352 353 353 if (iflag_pbl.ge.11) then … … 558 558 PARAMETER (check=.false.) 559 559 C 560 c---------------------- 561 c ATMOSPHERE PROFONDE 562 real p_lim,p_ref 563 real rsmu_mod(klon,klev),zrsmu_mod(klon,klev) 564 real ratio_mod(klon,klev) 565 ! theta_mod = theta * ratio_mod => ratio_mod = mmm0/mmm(p) 566 567 p_lim = 6e6 568 p_ref = 8.9e6 569 570 DO k = 1, klev 571 DO i = 1, klon 572 ratio_mod(i,k) = 1. 573 rsmu_mod(i,k) = RD 574 if (pplay(i,k).gt.p_lim) then 575 ratio_mod(i,k) = RMD / 576 & (RMD+0.56*(log(pplay(i,k))-log(p_lim))/(log(p_ref)-log(p_lim))) 577 ratio_mod(i,k) = max(ratio_mod(i,k),RMD/(RMD+0.56)) 578 rsmu_mod(i,k) = RD*ratio_mod(i,k) 579 endif 580 ENDDO 581 ENDDO 582 c---------------------- 583 560 584 if (iflag_pbl.eq.1) then 561 585 do k = 3, klev … … 584 608 DO i = 1, knon 585 609 zt(i,k) = (t(i,k)+t(i,k-1)) * 0.5 610 c---------------------- 611 c ATMOSPHERE PROFONDE 612 zrsmu_mod(i,k) = (rsmu_mod(i,k)+rsmu_mod(i,k-1)) * 0.5 613 c---------------------- 586 614 ENDDO 587 615 ENDDO … … 612 640 DO i = 1, knon 613 641 zx_coef(i,k) = coef(i,k)*RG/(pplay(i,k-1)-pplay(i,k)) 614 . *(paprs(i,k)/zt(i,k)/RD)**2 642 c---------------------- 643 c ATMOSPHERE PROFONDE 644 . *(paprs(i,k)/zt(i,k)/zrsmu_mod(i,k))**2 645 c---------------------- 615 646 zx_coef(i,k) = zx_coef(i,k) * dtime*RG 616 647 ENDDO 617 648 ENDDO 618 649 c 619 c Preparer les flux lies aux contre-gardients 650 c Preparer les flux lies aux contre-gardients OBSOLETE 620 651 c 621 652 DO k = 2, klev … … 984 1015 DATA appel1er /.TRUE./ 985 1016 c 1017 c---------------------- 1018 c ATMOSPHERE PROFONDE 1019 real p_lim,p_ref 1020 real modgam(klon,klev) 1021 1022 p_lim = 6e6 1023 p_ref = 8.9e6 1024 1025 DO k = 1, klev 1026 DO i = 1, klon 1027 modgam(i,k) = 0. 1028 if (pplay(i,k).gt.p_lim) then 1029 modgam(i,k) = 0.56/(log(p_ref)-log(p_lim))/R 1030 endif 1031 ENDDO 1032 ENDDO 1033 c---------------------- 1034 986 1035 isommet=klev 987 1036 … … 1045 1094 zmgeom(i,k)= zgeop(i,k)-zgeop(i,k-1) 1046 1095 zdphi = zmgeom(i,k)/2. 1047 ztvd(i,k) = (t(i,k) + zdphi/cpdet(zt(i,k))) 1048 ztvu(i,k) = (t(i,k-1) - zdphi/cpdet(zt(i,k))) 1096 c---------------------- 1097 c ATMOSPHERE PROFONDE 1098 ztvd(i,k) = t(i,k) + zdphi* 1099 & (1./cpdet(zt(i,k))+modgam(i,k)) 1100 ztvu(i,k) = t(i,k-1) - zdphi* 1101 & (1./cpdet(zt(i,k))+modgam(i,k)) 1102 c---------------------- 1049 1103 zpk(i,k) = ppk(i,k)*(paprs(i,k)/pplay(i,k))**RKAPPA 1050 1104 ENDDO … … 1054 1108 zt(i,1) = ts(i) 1055 1109 ztvu(i,1) = ts(i) 1056 ztvd(i,1) = t(i,1)+zgeop(i,1)/cpdet(zt(i,1)) 1110 c---------------------- 1111 c ATMOSPHERE PROFONDE 1112 ztvd(i,1) = t(i,1)+zgeop(i,1)* 1113 & (1./cpdet(zt(i,1))+modgam(i,1)) 1114 c---------------------- 1057 1115 zpk(i,1) = ppk(i,1)*(paprs(i,1)/pplay(i,1))**RKAPPA 1058 1116 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.