source: LMDZ4/trunk/libf/dyn3d/top_bound.F @ 999

Last change on this file since 999 was 999, checked in by Laurent Fairhead, 16 years ago
  • Modifs sur le parallelisme: masquage dans la physique
  • Inclusion strato
  • mise en coherence etat0
  • le mode offline fonctionne maintenant en parallele,
  • les fichiers de la dynamiques sont correctement sortis et peuvent etre reconstruit avec rebuild
  • la version parallele de la dynamique peut s'executer sans MPI (sur 1 proc)
  • L'OPENMP fonctionne maintenant sans la parallelisation MPI.

YM
LF

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.0 KB
Line 
1      SUBROUTINE top_bound( vcov,ucov,teta, du,dv,dh )
2      IMPLICIT NONE
3c
4#include "dimensions.h"
5#include "paramet.h"
6#include "comconst.h"
7CC#include "comgeom2.h"
8
9
10c ..  DISSIPATION LINEAIRE A HAUT NIVEAU, RUN MESO,
11C     F. LOTT DEC. 2006
12c                                 (  10/12/06  )
13
14c=======================================================================
15c
16c   Auteur:  F. LOTT 
17c   -------
18c
19c   Objet:
20c   ------
21c
22c   Dissipation linéaire (ex top_bound de la physique)
23c
24c=======================================================================
25c-----------------------------------------------------------------------
26c   Declarations:
27c   -------------
28
29#include "comgeom.h"
30#include "comdissipn.h"
31
32c   Arguments:
33c   ----------
34
35      REAL ucov(iip1,jjp1,llm),vcov(iip1,jjm,llm),teta(iip1,jjp1,llm)
36      REAL dv(iip1,jjm,llm),du(iip1,jjp1,llm),dh(iip1,jjp1,llm)
37
38c   Local:
39c   ------
40
41      REAL uzon(jjp1,llm),vzon(jjm,llm),tzon(jjp1,llm)
42     
43      INTEGER NDAMP
44      PARAMETER (NDAMP=4)
45      integer i
46      REAL :: rdamp(llm) =
47     &   (/(0., i =1,llm-NDAMP),0.125E-5,.25E-5,.5E-5,1.E-5/)
48
49      INTEGER j,l
50
51
52C  CALCUL DES CHAMPS EN MOYENNE ZONALE:
53     
54      do l=1,llm
55        do j=1,jjm
56          vzon(j,l)=0.
57          do i=1,iim
58            vzon(j,l)=vzon(j,l)+vcov(i,j,l)/float(iim)
59          enddo
60        enddo
61      enddo
62
63      do l=1,llm
64        do i=1,iip1
65          do j=1,jjm
66            dv(i,j,l)=dv(i,j,l)-rdamp(l)*(vcov(i,j,l)-vzon(j,l))
67          enddo
68        enddo
69      enddo
70
71      do l=1,llm
72        do j=2,jjm
73          uzon(j,l)=0.
74          tzon(j,l)=0.
75          do i=1,iim
76            uzon(j,l)=uzon(j,l)+ucov(i,j,l)/float(iim)
77            tzon(j,l)=tzon(j,l)+teta(i,j,l)/float(iim)
78          enddo
79        enddo
80      enddo
81
82C   AMORTISSEMENTS LINEAIRES:
83
84      do l=1,llm
85        do i=1,iip1
86          do j=2,jjm
87            du(i,j,l)=du(i,j,l)-rdamp(l)*(ucov(i,j,l)-uzon(j,l))
88            dh(i,j,l)=dh(i,j,l)-rdamp(l)*(teta(i,j,l)-tzon(j,l))
89          enddo
90        enddo
91      enddo
92     
93
94      RETURN
95      END
Note: See TracBrowser for help on using the repository browser.