Changeset 685 for LMDZ4/trunk


Ignore:
Timestamp:
Apr 4, 2006, 5:01:33 PM (19 years ago)
Author:
lmdzadmin
Message:

Prise en compte du type de recouvrement cf. CR
IM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk/libf/phylmd/newmicro.F

    r534 r685  
    4242#include "dimphy.h"
    4343#include "nuage.h"
     44cIM cf. CR: include pour NOVLP et ZEPSEC
     45#include "radepsi.h"
     46#include "radopt.h"
    4447      REAL paprs(klon,klev+1), pplay(klon,klev)
    4548      REAL t(klon,klev)
     
    103106      REAL cldtaupi(klon, klev) ! pre-industrial cloud opt thickness for diag
    104107cjq-end   
     108cIM cf. CR:parametres supplementaires
     109      REAL zclear(klon)
     110      REAL zcloud(klon)
    105111c
    106112c Calculer l'epaisseur optique et l'emmissivite des nuages
     
    287293C COMPUTE CLOUD LIQUID PATH AND TOTAL CLOUDINESS
    288294C
    289       DO i = 1, klon
    290          pct(i)=1.0
     295cIM cf. CR:test: calcul prenant ou non en compte le recouvrement
     296cinitialisations
     297      DO i=1,klon
     298         zclear(i)=1.
     299         zcloud(i)=0.
    291300         pch(i)=1.0
    292301         pcm(i) = 1.0
     
    295304      ENDDO
    296305C
     306cIM cf CR DO k=1,klev
    297307      DO k = klev, 1, -1
    298308      DO i = 1, klon
    299309         pctlwp(i) = pctlwp(i)
    300310     .             + pqlwp(i,k)*(paprs(i,k)-paprs(i,k+1))/RG
    301          pct(i) = pct(i)*(1.0-pclc(i,k))
    302          if (pplay(i,k).LE.cetahb*paprs(i,1))
    303      .      pch(i) = pch(i)*(1.0-pclc(i,k))
    304          if (pplay(i,k).GT.cetahb*paprs(i,1) .AND.
    305      .       pplay(i,k).LE.cetamb*paprs(i,1))
    306      .      pcm(i) = pcm(i)*(1.0-pclc(i,k))
    307          if (pplay(i,k).GT.cetamb*paprs(i,1))
    308      .      pcl(i) = pcl(i)*(1.0-pclc(i,k))
    309       ENDDO
     311cIM cf. CR
     312            IF (NOVLP.EQ.1) THEN
     313               zclear(i)=zclear(i)*(1.-MAX(pclc(i,k),zcloud(i)))
     314     s                            /(1.-MIN(zcloud(i),1.-ZEPSEC))
     315               pct(i)=1.-zclear(i)
     316               if (pplay(i,k).LE.cetahb*paprs(i,1)) then
     317                  pch(i) = pch(i)*(1.-MAX(pclc(i,k),zcloud(i)))
     318     s                            /(1.-MIN(zcloud(i),1.-ZEPSEC))
     319               else if (pplay(i,k).GT.cetahb*paprs(i,1) .AND.
     320     .                  pplay(i,k).LE.cetamb*paprs(i,1)) then
     321                  pcm(i) = pcm(i)*(1.-MAX(pclc(i,k),zcloud(i)))
     322     s                            /(1.-MIN(zcloud(i),1.-ZEPSEC))
     323               else if (pplay(i,k).GT.cetamb*paprs(i,1)) then
     324                  pcl(i) = pcl(i)*(1.-MAX(pclc(i,k),zcloud(i)))
     325     s                            /(1.-MIN(zcloud(i),1.-ZEPSEC))
     326               endif
     327               zcloud(i)=pclc(i,k)
     328            ELSE IF (NOVLP.EQ.2) THEN
     329               zcloud(i)=MAX(pclc(i,k),zcloud(i))
     330               pct(i)=zcloud(i)
     331               if (pplay(i,k).LE.cetahb*paprs(i,1)) then
     332                  pch(i) = MIN(pclc(i,k),pch(i))
     333               else if (pplay(i,k).GT.cetahb*paprs(i,1) .AND.
     334     .                  pplay(i,k).LE.cetamb*paprs(i,1)) then
     335                  pcm(i) = MIN(pclc(i,k),pcm(i))
     336               else if (pplay(i,k).GT.cetamb*paprs(i,1)) then
     337                  pcl(i) = MIN(pclc(i,k),pcl(i))
     338               endif
     339            ELSE IF (NOVLP.EQ.3) THEN
     340               zclear(i)=zclear(i)*(1.-pclc(i,k))
     341               pct(i)=1-zclear(i)
     342               if (pplay(i,k).LE.cetahb*paprs(i,1)) then
     343               pch(i) = pch(i)*(1.0-pclc(i,k))
     344               else if (pplay(i,k).GT.cetahb*paprs(i,1) .AND.
     345     .                  pplay(i,k).LE.cetamb*paprs(i,1)) then
     346               pcm(i) = pcm(i)*(1.0-pclc(i,k))
     347               else if (pplay(i,k).GT.cetamb*paprs(i,1)) then
     348               pcl(i) = pcl(i)*(1.0-pclc(i,k))
     349               endif
     350            ENDIF
     351         ENDDO
    310352      ENDDO
    311353C
    312354      DO i = 1, klon
    313          pct(i)=1.-pct(i)
     355cIM cf. CR          pct(i)=1.-pct(i)
    314356         pch(i)=1.-pch(i)
    315357         pcm(i)=1.-pcm(i)
Note: See TracChangeset for help on using the changeset viewer.