Ignore:
Timestamp:
May 19, 2014, 11:00:18 AM (11 years ago)
Author:
aslmd
Message:

LMDZ.MARS. replaced llm by nlayer with automatic array in newcondens (vl1d).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/newcondens.F

    r1266 r1269  
    578578                w(l)=-zmflux(l)*ptimestep
    579579            END DO
    580             call vl1d(ztc,2.,masse,w,ztm)
    581             call vl1d(zu ,2.,masse,w,zum)
    582             call vl1d(zv ,2.,masse,w,zvm)
     580            call vl1d(nlayer,ztc,2.,masse,w,ztm)
     581            call vl1d(nlayer,zu ,2.,masse,w,zum)
     582            call vl1d(nlayer,zv ,2.,masse,w,zvm)
    583583            do iq=1,nq
    584584             do l=1,nlayer
     
    586586             enddo
    587587             zqm1(1)=zqm(1,iq)
    588              call vl1d(zq1,2.,masse,w,zqm1)
     588             call vl1d(nlayer,zq1,2.,masse,w,zqm1)
    589589             do l=2,nlayer
    590590              zq( l,iq)=zq1(l)
     
    799799
    800800c *****************************************************************
    801       SUBROUTINE vl1d(q,pente_max,masse,w,qm)
     801      SUBROUTINE vl1d(nlayer,q,pente_max,masse,w,qm)
    802802c
    803803c   
     
    813813      IMPLICIT NONE
    814814
    815 #include "dimensions.h"
    816 
    817815c
    818816c
     
    820818c   Arguments:
    821819c   ----------
    822       real masse(llm),pente_max
    823       REAL q(llm),qm(llm+1)
    824       REAL w(llm+1)
     820      real masse(nlayer),pente_max
     821      REAL q(nlayer),qm(nlayer+1)
     822      REAL w(nlayer+1)
    825823c
    826824c      Local
     
    829827      INTEGER l
    830828c
    831       real dzq(llm),dzqw(llm),adzqw(llm),dzqmax
     829      real dzq(nlayer),dzqw(nlayer),adzqw(nlayer),dzqmax
    832830      real sigw, Mtot, MQtot
    833831      integer m
     
    838836c     W > 0 WHEN DOWN !!!!!!!!!!!!!
    839837
    840       do l=2,llm
     838      do l=2,nlayer
    841839            dzqw(l)=q(l-1)-q(l)
    842840            adzqw(l)=abs(dzqw(l))
    843841      enddo
    844842
    845       do l=2,llm-1
     843      do l=2,nlayer-1
    846844            if(dzqw(l)*dzqw(l+1).gt.0.) then
    847845                dzq(l)=0.5*(dzqw(l)+dzqw(l+1))
     
    854852
    855853         dzq(1)=0.
    856          dzq(llm)=0.
    857 
    858        do l = 1,llm-1
     854         dzq(nlayer)=0.
     855
     856       do l = 1,nlayer-1
    859857
    860858c         Regular scheme (transfered mass < layer mass)
     
    873871             Mtot = masse(m)
    874872             MQtot = masse(m)*q(m)
    875              do while ((m.lt.llm).and.(w(l+1).gt.(Mtot+masse(m+1))))
     873             do while ((m.lt.nlayer).and.(w(l+1).gt.(Mtot+masse(m+1))))
    876874                m=m+1
    877875                Mtot = Mtot + masse(m)
    878876                MQtot = MQtot + masse(m)*q(m)
    879877             end do
    880              if (m.lt.llm) then
     878             if (m.lt.nlayer) then
    881879                sigw=(w(l+1)-Mtot)/masse(m+1)
    882880                qm(l+1)= (1/w(l+1))*(MQtot + (w(l+1)-Mtot)*
     
    912910
    913911c     boundary conditions (not used in newcondens !!)
    914 c         qm(llm+1)=0.
     912c         qm(nlayer+1)=0.
    915913c         if(w(1).gt.0.) then
    916914c            qm(1)=q(1)
Note: See TracChangeset for help on using the changeset viewer.