Ignore:
Timestamp:
Apr 9, 2009, 12:11:35 PM (15 years ago)
Author:
Laurent Fairhead
Message:

Réintegration dans le tronc des modifications issues de la branche LMDZ-dev
comprises entre la révision 1074 et 1145
Validation: une simulation de 1 jour en séquentiel sur PC donne les mêmes
résultats entre la trunk et la dev
LF

Location:
LMDZ4/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk

  • LMDZ4/trunk/libf/phylmd/cv3_cine.F

    r879 r1146  
    3333      integer ifst(nloc),isublcl(nloc)
    3434      logical lswitch(nloc),lswitch1(nloc),lswitch2(nloc)
     35      logical exist_lfc(nloc)
     36      real plfc(nloc)
    3537      real dpmax
    3638      real deltap,dcin
    3739      real buoylcl(nloc),tvplcl(nloc),tvlcl(nloc)
    38       real plfc(nloc),p0(nloc)
     40      real p0(nloc)
    3941      real buoyz(nloc), buoy(nloc,nd)
    4042c
     
    5052c      Recompute buoyancies
    5153c--------------------------------------------------------------
    52       DO k = 1,nl
     54      DO k = 1,nd
    5355        DO il = 1,ncum
     56!      print*,'tvp tv=',tvp(il,k),tv(il,k)
    5457          buoy(il,k) = tvp(il,k) - tv(il,k)
    5558        ENDDO
    5659      ENDDO
    57 c
    58 c---------------------------------------------------------------
    59 c premiere couche contenant un  niveau de flotabilite positive
    60 c et premiere couche contenant un  niveau de flotabilite negative
    61 c  au dessus du niveau de condensation
    62 c---------------------------------------------------------------
    63       do il = 1,ncum
    64         itop(il) =nl-1
    65         ineg(il) = nl-1
    66       enddo
    67       do 100 k=nl,1,-1
    68        do 110 il=1,ncum
    69         if (k .ge. icb(il)) then
    70          if (buoy(il,k) .gt. 0.) then
    71           itop(il)=k
    72          else
    73           ineg(il)=k
    74          endif
    75         endif
    76 110    continue
    77 100   continue
    78 c      print *,' itop, ineg, icb ',itop(1),ineg(1), icb(1)
    79 c
    8060c---------------------------------------------------------------
    8161c
     
    10989c
    11090c---------------------------------------------------------------
     91c premiere couche contenant un  niveau de flotabilite positive
     92c et premiere couche contenant un  niveau de flotabilite negative
     93c  au dessus du niveau de condensation
     94c---------------------------------------------------------------
     95      do il = 1,ncum
     96        itop(il) =nl-1
     97        ineg(il) = nl-1
     98        exist_lfc(il) = .FALSE.
     99      enddo
     100      do 100 k=nl-1,1,-1
     101       do 110 il=1,ncum
     102        if (k .ge. ifst(il)) then
     103         if (buoy(il,k) .gt. 0.) then
     104          itop(il)=k
     105          exist_lfc(il) = .TRUE.
     106         else
     107          ineg(il)=k
     108         endif
     109        endif
     110110    continue
     111100   continue
     112c
     113c---------------------------------------------------------------
     114c When there is no positive buoyancy level, set Plfc, Cina and Cinb
     115c to arbitrary extreme values.
     116c---------------------------------------------------------------
     117      DO il = 1,ncum
     118       IF (.NOT.exist_lfc(il)) THEN
     119         Plfc(il) = 1.111
     120         Cinb(il) = -1111.
     121         Cina(il) = -1112.
     122       ENDIF
     123      ENDDO
     124c
     125c
     126c---------------------------------------------------------------
    111127c -- Two cases : BUOYlcl >= 0 and BUOYlcl < 0.
    112128c---------------------------------------------------------------
     
    118134      DPMAX = 50.
    119135      DO il = 1,ncum
    120         lswitch1(il)=BUOYlcl(il) .GE. 0.
     136        lswitch1(il)=BUOYlcl(il) .GE. 0. .AND. exist_lfc(il)
    121137        lswitch(il) = lswitch1(il)
    122138      ENDDO
     
    233249C
    234250      DO il = 1,ncum
    235         lswitch1(il)=BUOYlcl(il) .LT. 0.
     251        lswitch1(il)=BUOYlcl(il) .LT. 0. .AND. exist_lfc(il)
    236252        lswitch(il) = lswitch1(il)
    237253      ENDDO
     
    239255c 2.0.1 Premiere  couche ou la flotabilite est negative au dessus du sol
    240256c ----------------------------------------------------
    241 c    au cas ou il existe  sinon ilow=1 (nk apres)
     257c    au cas ou elle existe  sinon ilow=1 (nk apres)
    242258c      on suppose que la parcelle part de la premiere couche
    243259c
     
    248264      ENDDO
    249265c
    250       do 200 i=nl,1,-1
     266      do 200 k=nl,1,-1
    251267        DO il = 1,ncum
    252268        IF (lswitch(il) .AND. k .LE.icb(il)-1) THEN
     
    292308        dcin = RD*(BUOYz(il)+BUOYlcl(il))*deltap/(P0(il)+Plcl(il))
    293309        CINB(il) = min(0.,dcin)
    294 cc        print *,'buoyz(il),buoylcl(il),deltap,p0(il),plcl(il),dcin ',
    295 cc     $           buoyz(il),buoylcl(il),deltap,p0(il),plcl(il),dcin
    296       ENDIF
    297       ENDDO
    298 c        print*, 'CINB ',CINB(1),'DCIN ',DCIN,I,BUOYz(1),BUOYlcl(1)
     310      ENDIF
     311      ENDDO
    299312c
    300313      DO il = 1,ncum
     
    316329      ENDDO
    317330c
    318       IF (lswitch(1)) THEN
    319 c        print*,'ilow= ',ilow(1),'DCIN0 ',DCIN,P0(1),P(1,ilow(1))
    320 c        print*,'buoy',(BUOY(1,k),k=1,itop(1))
    321       ENDIF
    322331c
    323332C  Middle part of CINB : integral from P(ilow) to P(isublcl)
     
    332341        ENDIF
    333342        ENDDO
    334 c      print*, 'CINB ', CINB(1), 'DCIN',DCIN,k,BUOY(1,k),BUOY(1,k+1)
    335343      ENDDO
    336344c
     
    345353      ENDDO
    346354C
    347 c        print*, ' CINB ', CINB(1), 'Dcin ',dcin
    348355c
    349356cc      ENDIF
     
    439446      ENDDO
    440447cc      ENDIF
    441 c       Print *,' Plcl,P(itop-1),P(itop),PLFC,BUOYlcl'
    442 c     $      ,Plcl(1),P(1,itop(1)-1),P(1,itop(1)),PLFC(1),BUOYlcl(1)
    443 C
    444 c        print*, 'CIN above', CINA(1), 'CIN below',CINB(1)
    445448c
    446449
Note: See TracChangeset for help on using the changeset viewer.