Changeset 1232 for LMDZ4


Ignore:
Timestamp:
Aug 27, 2009, 3:23:40 PM (15 years ago)
Author:
musat
Message:

Correction Bug originel sur lb, lt : lb(klon), lt(klon) ==> lb(klon,klev), lt(klon,klev)
IM

File:
1 edited

Legend:

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

    r1194 r1232  
    4646
    4747cym      save lt,lb,ptop,pbot,aist,aisb
    48       INTEGER,ALLOCATABLE,SAVE,DIMENSION(:) :: lt,lb
     48      INTEGER,ALLOCATABLE,SAVE,DIMENSION(:,:) :: lt,lb
    4949      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: aist,aisb
    5050c$OMP THREADPRIVATE(lt,lb,aist,aisb)     
     
    5757c
    5858      if (first) then
    59          allocate(lt(klon),lb(klon))
     59         allocate(lt(klon,klevSTD),lb(klon,klevSTD))
    6060         allocate(aist(klon,klevSTD),aisb(klon, klevSTD))
    6161         first=.false.
     
    7878               IF ( ABS(pres(nlev)-pgcm(i,ilev) ) .LT.
    7979     &              ABS(pres(nlev)-pgcm(i,1)) ) THEN
    80                   lt(i) = ilev  ! 2
    81                   lb(i) = ilev-1 ! 1
     80                  lt(i,nlev) = ilev  ! 2
     81                  lb(i,nlev) = ilev-1 ! 1
    8282               ELSE
    83                   lt(i) = 2
    84                   lb(i) = 1
     83                  lt(i,nlev) = 2
     84                  lb(i,nlev) = 1
    8585               ENDIF
    8686            ENDDO
     
    9090                  ptop = pgcm(i,k+1)
    9191                  IF (ptop.LE.pres(nlev) .AND. pbot.GE.pres(nlev)) THEN
    92                      lt(i) = k+1
    93                      lb(i) = k
     92                     lt(i,nlev) = k+1
     93                     lb(i,nlev) = k
    9494                  ENDIF
    9595               ENDDO
     
    103103c     Modif Frederic Hourdin (3/01/02)
    104104               
    105                aist(i,nlev) = LOG( pgcm(i,lb(i))/ pres(nlev) )
    106      &              / LOG( pgcm(i,lb(i))/ pgcm(i,lt(i)) )
    107                aisb(i,nlev) = LOG( pres(nlev) / pgcm(i,lt(i)) )
    108      &              / LOG( pgcm(i,lb(i))/ pgcm(i,lt(i)))
     105               aist(i,nlev) = LOG( pgcm(i,lb(i,nlev))/ pres(nlev) )
     106     &              / LOG( pgcm(i,lb(i,nlev))/ pgcm(i,lt(i,nlev)) )
     107               aisb(i,nlev) = LOG( pres(nlev) / pgcm(i,lt(i,nlev)) )
     108     &              / LOG( pgcm(i,lb(i,nlev))/ pgcm(i,lt(i,nlev)))
    109109            ENDDO
    110110         ENDDO
     
    124124            ELSE
    125125               Qpres(i,nlev) =
    126      &              Qgcm(i,lb(i))*aisb(i,nlev) +
    127      &              Qgcm(i,lt(i))*aist(i,nlev)
     126     &              Qgcm(i,lb(i,nlev))*aisb(i,nlev) +
     127     &              Qgcm(i,lt(i,nlev))*aist(i,nlev)
    128128            ENDIF
    129129         ENDDO
Note: See TracChangeset for help on using the changeset viewer.