source: trunk/LMDZ.MARS/libf/phymars/vdif_kc.F @ 1047

Last change on this file since 1047 was 1047, checked in by emillour, 11 years ago

Mars GCM:

  • IMPORTANT CHANGE: Removed all reference/use of ngridmx (dimphys.h) in routines (necessary prerequisite to using parallel dynamics); in most cases this just means adding 'ngrid' as routine argument, and making local saved variables allocatable (and allocated at first call). In the process, had to convert many *.h files to equivalent modules: yomaer.h => yomaer_h.F90 , surfdat.h => surfdat_h.F90 , comsaison.h => comsaison_h.F90 , yomlw.h => yomlw_h.F90 , comdiurn.h => comdiurn_h.F90 , dimradmars.h => dimradmars_mod.F90 , comgeomfi.h => comgeomfi_h.F90, comsoil.h => comsoil_h.F90 , slope.h => slope_mod.F90
  • Also updated EOF routines, everything is now in eofdump_mod.F90
  • Removed unused routine lectfux.F (in dyn3d)

EM

File size: 21.3 KB
Line 
1      SUBROUTINE vdif_kc(ngrid,nlay,nq,dt,g,
2     &                   zlev,zlay,u,v,teta,cd,q2,km,kn,zq)
3
4      use tracer_mod, only: noms
5      IMPLICIT NONE
6c.......................................................................
7!#include "dimensions.h"
8!#include "dimphys.h"
9!#include "tracer.h"
10#include "callkeys.h"
11c.......................................................................
12c
13c dt : pas de temps
14c g  : g
15c zlev : altitude a chaque niveau (interface inferieure de la couche
16c        de meme indice)
17c zlay : altitude au centre de chaque couche
18c u,v : vitesse au centre de chaque couche
19c       (en entree : la valeur au debut du pas de temps)
20c teta : temperature potentielle au centre de chaque couche
21c        (en entree : la valeur au debut du pas de temps)
22c cd : cdrag
23c      (en entree : la valeur au debut du pas de temps)
24c q2 : $q^2$ au bas de chaque couche
25c      (en entree : la valeur au debut du pas de temps)
26c      (en sortie : la valeur a la fin du pas de temps)
27c km : diffusivite turbulente de quantite de mouvement (au bas de chaque
28c      couche)
29c      (en sortie : la valeur a la fin du pas de temps)
30c kn : diffusivite turbulente des scalaires (au bas de chaque couche)
31c      (en sortie : la valeur a la fin du pas de temps)
32c
33c.......................................................................
34      REAL dt,g
35      REAL zlev(ngrid,nlay+1)
36      REAL zlay(ngrid,nlay)
37      REAL u(ngrid,nlay)
38      REAL v(ngrid,nlay)
39      REAL teta(ngrid,nlay)
40      REAL cd(ngrid)
41      REAL q2(ngrid,nlay+1)
42      REAL km(ngrid,nlay+1)
43      REAL kn(ngrid,nlay+1)
44      REAL zq(ngrid,nlay,nq)
45c.......................................................................
46c
47c nlay : nombre de couches       
48c nlev : nombre de niveaux
49c ngrid : nombre de points de grille       
50c unsdz : 1 sur l'epaisseur de couche
51c unsdzdec : 1 sur la distance entre le centre de la couche et le
52c            centre de la couche inferieure
53c q : echelle de vitesse au bas de chaque couche
54c     (valeur a la fin du pas de temps)
55c
56c.......................................................................
57      INTEGER,INTENT(IN) :: nlay,ngrid,nq
58      INTEGER nlev
59      REAL unsdz(ngrid,nlay)
60      REAL unsdzdec(ngrid,nlay+1)
61      REAL q(ngrid,nlay+1)
62c.......................................................................
63c
64c kmpre : km au debut du pas de temps
65c qcstat : q : solution stationnaire du probleme couple
66c          (valeur a la fin du pas de temps)
67c q2cstat : q2 : solution stationnaire du probleme couple
68c           (valeur a la fin du pas de temps)
69c
70c.......................................................................
71      REAL kmpre(ngrid,nlay+1)
72      REAL qcstat
73      REAL q2cstat
74c.......................................................................
75c
76c long : longueur de melange calculee selon Blackadar
77c
78c.......................................................................
79      REAL long(ngrid,nlay+1)
80c.......................................................................
81c
82c kmq3 : terme en q^3 dans le developpement de km
83c        (valeur au debut du pas de temps)
84c kmcstat : valeur de km solution stationnaire du systeme {q2 ; du/dz}
85c           (valeur a la fin du pas de temps)
86c knq3 : terme en q^3 dans le developpement de kn
87c mcstat : valeur de m solution stationnaire du systeme {q2 ; du/dz}
88c          (valeur a la fin du pas de temps)
89c m2cstat : valeur de m2 solution stationnaire du systeme {q2 ; du/dz}
90c           (valeur a la fin du pas de temps)
91c m : valeur a la fin du pas de temps
92c mpre : valeur au debut du pas de temps
93c m2 : valeur a la fin du pas de temps
94c n2 : valeur a la fin du pas de temps
95c
96c.......................................................................
97      REAL kmq3
98      REAL kmcstat
99      REAL knq3
100      REAL mcstat
101      REAL m2cstat
102      REAL m(ngrid,nlay+1)
103      REAL mpre(ngrid,nlay+1)
104      REAL m2(ngrid,nlay+1)
105      REAL n2(ngrid,nlay+1)
106c.......................................................................
107c
108c gn : intermediaire pour les coefficients de stabilite
109c gnmin : borne inferieure de gn (-0.23 ou -0.28)
110c gnmax : borne superieure de gn (0.0233)
111c gninf : vrai si gn est en dessous de sa borne inferieure
112c gnsup : vrai si gn est en dessus de sa borne superieure
113c gm : drole d'objet bien utile
114c ri : nombre de Richardson
115c sn : coefficient de stabilite pour n
116c snq2 : premier terme du developement limite de sn en q2
117c sm : coefficient de stabilite pour m
118c smq2 : premier terme du developement limite de sm en q2
119c
120c.......................................................................
121      REAL gn
122      REAL gnmin
123      REAL gnmax
124      LOGICAL gninf
125      LOGICAL gnsup
126      REAL gm
127c      REAL ri(ngrid,nlay+1)
128      REAL sn(ngrid,nlay+1)
129      REAL snq2(ngrid,nlay+1)
130      REAL sm(ngrid,nlay+1)
131      REAL smq2(ngrid,nlay+1)
132c.......................................................................
133c
134c kappa : consatnte de Von Karman (0.4)
135c long0 : longueur de reference pour le calcul de long (160)
136c a1,a2,b1,b2,c1 : constantes d'origine pour les  coefficients
137c                  de stabilite (0.92/0.74/16.6/10.1/0.08)
138c cn1,cn2 : constantes pour sn
139c cm1,cm2,cm3,cm4 : constantes pour sm
140c
141c.......................................................................
142      REAL kappa
143      REAL long0
144      REAL a1,a2,b1,b2,c1
145      REAL cn1,cn2
146      REAL cm1,cm2,cm3,cm4
147c.......................................................................
148c
149c termq : termes en $q$ dans l'equation de q2
150c termq3 : termes en $q^3$ dans l'equation de q2
151c termqm2 : termes en $q*m^2$ dans l'equation de q2
152c termq3m2 : termes en $q^3*m^2$ dans l'equation de q2
153c
154c.......................................................................
155      REAL termq
156      REAL termq3
157      REAL termqm2
158      REAL termq3m2
159c.......................................................................
160c
161c q2min : borne inferieure de q2
162c q2max : borne superieure de q2
163c
164c.......................................................................
165      REAL q2min
166      REAL q2max
167c.......................................................................
168c knmin : borne inferieure de kn
169c kmmin : borne inferieure de km
170c.......................................................................
171      REAL knmin
172      REAL kmmin
173c.......................................................................
174      INTEGER ilay,ilev,igrid
175      REAL tmp1,tmp2
176c.......................................................................
177      PARAMETER (kappa=0.4E+0)
178      PARAMETER (long0=160.E+0)
179      PARAMETER (gnmin=-10.E+0)
180      PARAMETER (gnmax=0.0233E+0)
181      PARAMETER (a1=0.92E+0)
182      PARAMETER (a2=0.74E+0)
183      PARAMETER (b1=16.6E+0)
184      PARAMETER (b2=10.1E+0)
185      PARAMETER (c1=0.08E+0)
186      PARAMETER (knmin=1.E-5)
187      PARAMETER (kmmin=1.E-5)
188      PARAMETER (q2min=1.E-3)
189      PARAMETER (q2max=1.E+2)
190c
191      PARAMETER (
192     &  cn1=a2*(1.E+0 -6.E+0 *a1/b1)
193     &          )
194      PARAMETER (
195     &  cn2=-3.E+0 *a2*(6.E+0 *a1+b2)
196     &          )
197      PARAMETER (
198     &  cm1=a1*(1.E+0 -3.E+0 *c1-6.E+0 *a1/b1)
199     &          )
200      PARAMETER (
201     &  cm2=a1*(-3.E+0 *a2*((b2-3.E+0 *a2)*(1.E+0 -6.E+0 *a1/b1)
202     &          -3.E+0 *c1*(b2+6.E+0 *a1)))
203     &          )
204      PARAMETER (
205     &  cm3=-3.E+0 *a2*(6.E+0 *a1+b2)
206     &          )
207      PARAMETER (
208     &  cm4=-9.E+0 *a1*a2
209     &          )
210
211c AC: variables for theta_m computation
212
213      INTEGER ico2,iq
214      SAVE ico2
215      REAL m_co2, m_noco2, A , B
216      SAVE A, B
217      LOGICAL firstcall
218      save firstcall
219      data firstcall/.true./
220      REAL zhc(ngrid,nlay)
221c.......................................................................
222c  Initialization
223c.......................................................................
224
225      if(firstcall) then
226        ico2=0
227        if (tracer) then
228!     Prepare Special treatment if one of the tracers is CO2 gas
229           do iq=1,nq
230             if (noms(iq).eq."co2") then
231                ico2=iq
232                m_co2 = 44.01E-3  ! CO2 molecular mass (kg/mol)
233                m_noco2 = 33.37E-3  ! Non condensible mol mass (kg/mol)
234!               Compute A and B coefficient use to compute
235!               mean molecular mass Mair defined by
236!               1/Mair = q(ico2)/m_co2 + (1-q(ico2))/m_noco2
237!               1/Mair = A*q(ico2) + B
238                A =(1/m_co2 - 1/m_noco2)
239                B=1/m_noco2
240             end if
241           enddo
242        endif
243
244      firstcall=.false.
245      endif !of if firstcall
246
247      nlev=nlay+1
248     
249c.......................................................................
250c  Special treatment for co2
251c.......................................................................
252
253      if (ico2.ne.0) then
254!     Special case if one of the tracers is CO2 gas
255         DO ilay=1,nlay
256           DO igrid=1,ngrid
257            zhc(igrid,ilay) = teta(igrid,ilay)*(A*zq(igrid,ilay,ico2)+B)
258           ENDDO
259         ENDDO
260       else
261          zhc(:,:)=teta(:,:)
262       end if
263
264c.......................................................................
265c  traitment des valeur de q2 en entree
266c.......................................................................
267c
268      DO ilev=1,nlev
269                                                      DO igrid=1,ngrid
270        q2(igrid,ilev)=amax1(q2(igrid,ilev),q2min)
271        q(igrid,ilev)=sqrt(q2(igrid,ilev))
272                                                      ENDDO
273      ENDDO
274c
275                                                      DO igrid=1,ngrid
276      tmp1=cd(igrid)*(u(igrid,1)**2+v(igrid,1)**2)
277      q2(igrid,1)=b1**(2.E+0/3.E+0)*tmp1
278      q2(igrid,1)=amax1(q2(igrid,1),q2min)
279      q(igrid,1)=sqrt(q2(igrid,1))
280                                                      ENDDO
281c
282c.......................................................................
283c  les increments verticaux
284c.......................................................................
285c
286c!!!!! allerte !!!!!c
287c!!!!! zlev n'est pas declare a nlev !!!!!c
288c!!!!! ---->
289c                                                     DO igrid=1,ngrid
290c           zlev(igrid,nlev)=zlay(igrid,nlay)
291c    &             +( zlay(igrid,nlay) - zlev(igrid,nlev-1) )
292c                                                     ENDDO           
293c!!!!! <----
294c!!!!! allerte !!!!!c
295c
296      DO ilay=1,nlay
297                                                      DO igrid=1,ngrid
298        unsdz(igrid,ilay)=1.E+0/(zlev(igrid,ilay+1)-zlev(igrid,ilay))
299                                                      ENDDO
300      ENDDO
301                                                      DO igrid=1,ngrid
302      unsdzdec(igrid,1)=1.E+0/(zlay(igrid,1)-zlev(igrid,1))
303                                                      ENDDO
304      DO ilay=2,nlay
305                                                      DO igrid=1,ngrid
306        unsdzdec(igrid,ilay)=1.E+0/(zlay(igrid,ilay)-zlay(igrid,ilay-1))
307                                                      ENDDO
308      ENDDO
309                                                      DO igrid=1,ngrid
310      unsdzdec(igrid,nlay+1)=1.E+0/(zlev(igrid,nlay+1)-zlay(igrid,nlay))
311                                                      ENDDO
312c
313c.......................................................................
314c  le cisaillement et le gradient de temperature
315c.......................................................................
316c
317                                                      DO igrid=1,ngrid
318      m2(igrid,1)=(unsdzdec(igrid,1)
319     &                   *u(igrid,1))**2
320     &                 +(unsdzdec(igrid,1)
321     &                   *v(igrid,1))**2
322      m(igrid,1)=sqrt(m2(igrid,1))
323      mpre(igrid,1)=m(igrid,1)
324                                                      ENDDO
325c
326c-----------------------------------------------------------------------
327      DO ilev=2,nlev-1
328                                                      DO igrid=1,ngrid
329c-----------------------------------------------------------------------
330c
331        n2(igrid,ilev)=g*unsdzdec(igrid,ilev)
332     &                   *(zhc(igrid,ilev)-zhc(igrid,ilev-1))
333     &                   /(zhc(igrid,ilev)+zhc(igrid,ilev-1)) *2.E+0
334c
335c --->
336c       on ne sais traiter que les cas stratifies. et l'ajustement
337c       convectif est cense faire en sorte que seul des configurations
338c       stratifiees soient rencontrees en entree de cette routine.
339c       mais, bon ... on sait jamais (meme on sait que n2 prends
340c       quelques valeurs negatives ... parfois) alors :
341c<---
342c
343        IF (n2(igrid,ilev).lt.0.E+0) THEN
344          n2(igrid,ilev)=0.E+0
345        ENDIF
346c
347        m2(igrid,ilev)=(unsdzdec(igrid,ilev)
348     &                     *(u(igrid,ilev)-u(igrid,ilev-1)))**2
349     &                   +(unsdzdec(igrid,ilev)
350     &                     *(v(igrid,ilev)-v(igrid,ilev-1)))**2
351        m(igrid,ilev)=sqrt(m2(igrid,ilev))
352        mpre(igrid,ilev)=m(igrid,ilev)
353c
354c-----------------------------------------------------------------------
355                                                      ENDDO
356      ENDDO
357c-----------------------------------------------------------------------
358c
359                                                      DO igrid=1,ngrid
360      m2(igrid,nlev)=m2(igrid,nlev-1)
361      m(igrid,nlev)=m(igrid,nlev-1)
362      mpre(igrid,nlev)=m(igrid,nlev)
363                                                      ENDDO
364c
365c.......................................................................
366c  calcul des fonctions de stabilite
367c.......................................................................
368c
369c-----------------------------------------------------------------------
370      DO ilev=2,nlev-1
371                                                      DO igrid=1,ngrid
372c-----------------------------------------------------------------------
373c
374        tmp1=kappa*(zlev(igrid,ilev)-zlev(igrid,1))
375        long(igrid,ilev)=tmp1/(1.E+0 + tmp1/long0)
376        gn=-long(igrid,ilev)**2 / q2(igrid,ilev)
377     &                                           * n2(igrid,ilev)
378        gm=long(igrid,ilev)**2 / q2(igrid,ilev)
379     &                                           * m2(igrid,ilev)
380c
381        gninf=.false.
382        gnsup=.false.
383        long(igrid,ilev)=long(igrid,ilev)
384        long(igrid,ilev)=long(igrid,ilev)
385c
386        IF (gn.lt.gnmin) THEN
387          gninf=.true.
388          gn=gnmin
389        ENDIF
390c
391        IF (gn.gt.gnmax) THEN
392          gnsup=.true.
393          gn=gnmax
394        ENDIF
395c
396        sn(igrid,ilev)=cn1/(1.E+0 +cn2*gn)
397        sm(igrid,ilev)=
398     &    (cm1+cm2*gn)
399     &   /( (1.E+0 +cm3*gn)
400     &     *(1.E+0 +cm4*gn) )
401c
402        IF ((gninf).or.(gnsup)) THEN
403          snq2(igrid,ilev)=0.E+0
404          smq2(igrid,ilev)=0.E+0
405        ELSE
406          snq2(igrid,ilev)=
407     &     -gn
408     &     *(-cn1*cn2/(1.E+0 +cn2*gn)**2 )
409          smq2(igrid,ilev)=
410     &     -gn
411     &     *( cm2*(1.E+0 +cm3*gn)
412     &           *(1.E+0 +cm4*gn)
413     &       -( cm3*(1.E+0 +cm4*gn)
414     &         +cm4*(1.E+0 +cm3*gn) )
415     &       *(cm1+cm2*gn)            )
416     &     /( (1.E+0 +cm3*gn)
417     &       *(1.E+0 +cm4*gn) )**2
418        ENDIF
419c
420c --->
421c       la decomposition de Taylor en q2 n'a de sens que
422c       dans les cas stratifies ou sn et sm sont quasi
423c       proportionnels a q2. ailleurs on laisse le meme
424c       algorithme car l'ajustement convectif fait le travail.
425c       mais c'est delirant quand sn et snq2 n'ont pas le meme
426c       signe : dans ces cas, on ne fait pas la decomposition.
427c<---
428c
429        IF (snq2(igrid,ilev)*sn(igrid,ilev).le.0.E+0)
430     &      snq2(igrid,ilev)=0.E+0
431        IF (smq2(igrid,ilev)*sm(igrid,ilev).le.0.E+0)
432     &      smq2(igrid,ilev)=0.E+0
433c
434c-----------------------------------------------------------------------
435                                                      ENDDO
436      ENDDO
437c-----------------------------------------------------------------------
438c
439c.......................................................................
440c  calcul de km et kn au debut du pas de temps
441c.......................................................................
442c
443                                                      DO igrid=1,ngrid
444      kn(igrid,1)=knmin
445      km(igrid,1)=kmmin
446      kmpre(igrid,1)=km(igrid,1)
447                                                      ENDDO
448c
449c-----------------------------------------------------------------------
450      DO ilev=2,nlev-1
451                                                      DO igrid=1,ngrid
452c-----------------------------------------------------------------------
453c
454        kn(igrid,ilev)=long(igrid,ilev)*q(igrid,ilev)
455     &                                         *sn(igrid,ilev)
456        km(igrid,ilev)=long(igrid,ilev)*q(igrid,ilev)
457     &                                         *sm(igrid,ilev)
458        kmpre(igrid,ilev)=km(igrid,ilev)
459c
460c-----------------------------------------------------------------------
461                                                      ENDDO
462      ENDDO
463c-----------------------------------------------------------------------
464c
465                                                      DO igrid=1,ngrid
466      kn(igrid,nlev)=kn(igrid,nlev-1)
467      km(igrid,nlev)=km(igrid,nlev-1)
468      kmpre(igrid,nlev)=km(igrid,nlev)
469                                                      ENDDO
470c
471c.......................................................................
472c  boucle sur les niveaux 2 a nlev-1
473c.......................................................................
474c
475c---->
476      DO 10001 ilev=2,nlev-1
477c---->
478      DO 10002 igrid=1,ngrid
479c
480c.......................................................................
481c
482c  calcul des termes sources et puits de l'equation de q2
483c  ------------------------------------------------------
484c
485        knq3=kn(igrid,ilev)*snq2(igrid,ilev)
486     &                                    /sn(igrid,ilev)
487        kmq3=km(igrid,ilev)*smq2(igrid,ilev)
488     &                                    /sm(igrid,ilev)
489c
490        termq=0.E+0
491        termq3=0.E+0
492        termqm2=0.E+0
493        termq3m2=0.E+0
494c
495        tmp1=dt*2.E+0 *km(igrid,ilev)*m2(igrid,ilev)
496        tmp2=dt*2.E+0 *kmq3*m2(igrid,ilev)
497        termqm2=termqm2
498     &    +dt*2.E+0 *km(igrid,ilev)*m2(igrid,ilev)
499     &    -dt*2.E+0 *kmq3*m2(igrid,ilev)
500        termq3m2=termq3m2
501     &    +dt*2.E+0 *kmq3*m2(igrid,ilev)
502c
503        termq=termq
504     &    -dt*2.E+0 *kn(igrid,ilev)*n2(igrid,ilev)
505     &    +dt*2.E+0 *knq3*n2(igrid,ilev)
506        termq3=termq3
507     &    -dt*2.E+0 *knq3*n2(igrid,ilev)
508c
509        termq3=termq3
510     &    -dt*2.E+0 *q(igrid,ilev)**3 / (b1*long(igrid,ilev))
511c
512c.......................................................................
513c
514c  resolution stationnaire couplee avec le gradient de vitesse local
515c  -----------------------------------------------------------------
516c
517c  -----{on cherche le cisaillement qui annule l'equation de q^2
518c        supposee en q3}
519c
520        tmp1=termq+termq3
521        tmp2=termqm2+termq3m2
522        m2cstat=m2(igrid,ilev)
523     &      -(tmp1+tmp2)/(dt*2.E+0*km(igrid,ilev))
524        mcstat=sqrt(m2cstat)
525c
526c  -----{puis on ecrit la valeur de q qui annule l'equation de m
527c        supposee en q3}
528c
529        IF (ilev.eq.2) THEN
530          kmcstat=1.E+0 / mcstat
531     &    *( unsdz(igrid,ilev)*kmpre(igrid,ilev+1)
532     &                        *mpre(igrid,ilev+1)
533     &      +unsdz(igrid,ilev-1)
534     &              *cd(igrid)
535     &              *( sqrt(u(igrid,3)**2+v(igrid,3)**2)
536     &                -mcstat/unsdzdec(igrid,ilev)
537     &                -mpre(igrid,ilev+1)/unsdzdec(igrid,ilev+1) )**2)
538     &      /( unsdz(igrid,ilev)+unsdz(igrid,ilev-1) )
539        ELSE
540          kmcstat=1.E+0 / mcstat
541     &    *( unsdz(igrid,ilev)*kmpre(igrid,ilev+1)
542     &                        *mpre(igrid,ilev+1)
543     &      +unsdz(igrid,ilev-1)*kmpre(igrid,ilev-1)
544     &                          *mpre(igrid,ilev-1) )
545     &      /( unsdz(igrid,ilev)+unsdz(igrid,ilev-1) )
546        ENDIF
547        tmp2=kmcstat
548     &      /( sm(igrid,ilev)/q2(igrid,ilev) )
549     &      /long(igrid,ilev)
550        qcstat=tmp2**(1.E+0/3.E+0)
551        q2cstat=qcstat**2
552c
553c.......................................................................
554c
555c  choix de la solution finale
556c  ---------------------------
557c
558          q(igrid,ilev)=qcstat
559          q2(igrid,ilev)=q2cstat
560          m(igrid,ilev)=mcstat
561          m2(igrid,ilev)=m2cstat
562c
563c --->
564c       pour des raisons simples q2 est minore
565c<---
566c
567        IF (q2(igrid,ilev).lt.q2min) THEN
568          q2(igrid,ilev)=q2min
569          q(igrid,ilev)=sqrt(q2min)
570        ENDIF
571c
572c.......................................................................
573c
574c  calcul final de kn et km
575c  ------------------------
576c
577        gn=-long(igrid,ilev)**2 / q2(igrid,ilev)
578     &                                           * n2(igrid,ilev)
579        IF (gn.lt.gnmin) gn=gnmin
580        IF (gn.gt.gnmax) gn=gnmax
581        sn(igrid,ilev)=cn1/(1.E+0 +cn2*gn)
582        sm(igrid,ilev)=
583     &    (cm1+cm2*gn)
584     &   /( (1.E+0 +cm3*gn)*(1.E+0 +cm4*gn) )
585        kn(igrid,ilev)=long(igrid,ilev)*q(igrid,ilev)
586     &                 *sn(igrid,ilev)
587        km(igrid,ilev)=long(igrid,ilev)*q(igrid,ilev)
588     &                 *sm(igrid,ilev)
589c
590c.......................................................................
591c
59210002 CONTINUE
593c
59410001 CONTINUE
595c
596c.......................................................................
597c
598c
599                                                      DO igrid=1,ngrid
600      kn(igrid,1)=knmin
601      km(igrid,1)=kmmin
602      q2(igrid,nlev)=q2(igrid,nlev-1)
603      q(igrid,nlev)=q(igrid,nlev-1)
604      kn(igrid,nlev)=kn(igrid,nlev-1)
605      km(igrid,nlev)=km(igrid,nlev-1)
606                                                      ENDDO
607
608c
609c.......................................................................
610c
611      RETURN
612      END
Note: See TracBrowser for help on using the repository browser.