Changeset 1501


Ignore:
Timestamp:
Mar 15, 2011, 5:12:29 PM (13 years ago)
Author:
idelkadi
Message:

Rajout de la nouvelle formulation de l'efficacite des precipitations fonction de la temperature et contenu en eau liquide

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/cv3_routines.F

    r1494 r1501  
    936936      logical lcape(nloc)
    937937      integer iposit(nloc)
     938      real elcrit, tlcrit, sigs
     939      parameter(sigs=0.15)
     940      integer flag_epKEorig
    938941
    939942!=====================================================================
     
    10441047! --- THESE MAY BE FUNCTIONS OF TP(I), P(I) AND CLW(I)
    10451048!=====================================================================
    1046 c
    1047 c ori      do 320 k=minorig+1,nl
    1048       do 320 k=1,nl ! convect3
     1049cIM beg: ajout fis. reglage ep
     1050      flag_epKEorig=0
     1051      elcrit=0.0011
     1052      tlcrit=-55.0
     1053cIM Lecture du fichier ep_param.data
     1054      OPEN(99,file='ep_param.data',status='old',
     1055     $          form='formatted',err=9999)
     1056      READ(99,*,end=9998) flag_epKEorig
     1057      READ(99,*,end=9998) elcrit
     1058      READ(99,*,end=9998) tlcrit
     10599998  Continue
     1060      CLOSE(99)
     10619999  Continue
     1062      WRITE(*,*)'flag_epKEorig',flag_epKEorig
     1063      WRITE(*,*)'elcrit=',elcrit
     1064      WRITE(*,*)'tlcrit=',tlcrit
     1065cIM end: ajout fis. reglage ep
     1066
     1067      if(flag_epKEorig.ne.1) THEN
     1068        do 320 k=1,nl ! convect3
    10491069        do 310 i=1,ncum
    10501070           pden=ptcrit-pbcrit
    10511071           ep(i,k)=(plcl(i)-p(i,k)-pbcrit)/pden*epmax
    1052            ep(i,k)=max(ep(i,k),0.0)
     1072           ep(i,k)=amax1(ep(i,k),0.0)
    10531073           ep(i,k)=amin1(ep(i,k),epmax)
    10541074           sigp(i,k)=spfac
    1055 c ori          if(k.ge.(nk(i)+1))then
    1056 c ori            tca=tp(i,k)-t0
    1057 c ori            if(tca.ge.0.0)then
    1058 c ori              elacrit=elcrit
    1059 c ori            else
    1060 c ori              elacrit=elcrit*(1.0-tca/tlcrit)
    1061 c ori            endif
    1062 c ori            elacrit=max(elacrit,0.0)
    1063 c ori            ep(i,k)=1.0-elacrit/max(clw(i,k),1.0e-8)
    1064 c ori            ep(i,k)=max(ep(i,k),0.0 )
    1065 c ori            ep(i,k)=min(ep(i,k),1.0 )
    1066 c ori            sigp(i,k)=sigs
    1067 c ori          endif
    10681075 310    continue
    1069  320  continue
    1070 c
     1076 320    continue
     1077      else
     1078        do 325 k=1,nl
     1079        do 315 i=1,ncum
     1080          if(k.ge.(nk(i)+1))then
     1081              tca=tp(i,k)-t0
     1082              if(tca.ge.0.0)then
     1083               elacrit=elcrit
     1084              else
     1085                elacrit=elcrit*(1.0-tca/tlcrit)
     1086              endif
     1087              elacrit=max(elacrit,0.0)
     1088              ep(i,k)=1.0-elacrit/max(clw(i,k),1.0e-8)
     1089              ep(i,k)=max(ep(i,k),0.0 )
     1090              ep(i,k)=min(ep(i,k),epmax )
     1091              sigp(i,k)=sigs
     1092          endif
     1093 315    continue
     1094 325    continue
     1095      endif
    10711096!=====================================================================
    10721097! --- CALCULATE VIRTUAL TEMPERATURE AND LIFTED PARCEL
Note: See TracChangeset for help on using the changeset viewer.