source: LMDZ4/trunk/libf/dyn3dpar/top_bound_p.F @ 1000

Last change on this file since 1000 was 1000, 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.5 KB
Line 
1      SUBROUTINE top_bound_p( vcov,ucov,teta, du,dv,dh )
2      USE parallel
3      IMPLICIT NONE
4c
5#include "dimensions.h"
6#include "paramet.h"
7#include "comconst.h"
8CC#include "comgeom2.h"
9
10
11c ..  DISSIPATION LINEAIRE A HAUT NIVEAU, RUN MESO,
12C     F. LOTT DEC. 2006
13c                                 (  10/12/06  )
14
15c=======================================================================
16c
17c   Auteur:  F. LOTT 
18c   -------
19c
20c   Objet:
21c   ------
22c
23c   Dissipation linéaire (ex top_bound de la physique)
24c
25c=======================================================================
26c-----------------------------------------------------------------------
27c   Declarations:
28c   -------------
29
30#include "comgeom.h"
31#include "comdissipn.h"
32
33c   Arguments:
34c   ----------
35
36      REAL ucov(iip1,jjp1,llm),vcov(iip1,jjm,llm),teta(iip1,jjp1,llm)
37      REAL dv(iip1,jjm,llm),du(iip1,jjp1,llm),dh(iip1,jjp1,llm)
38
39c   Local:
40c   ------
41
42      REAL uzon(jjp1,llm),vzon(jjm,llm),tzon(jjp1,llm)
43     
44      INTEGER NDAMP
45      PARAMETER (NDAMP=4)
46      integer i
47      REAL :: rdamp(llm) =
48     &   (/(0., i =1,llm-NDAMP),0.125E-5,.25E-5,.5E-5,1.E-5/)
49
50      INTEGER j,l,jjb,jje
51
52
53C  CALCUL DES CHAMPS EN MOYENNE ZONALE:
54
55      jjb=jj_begin
56      jje=jj_end
57      IF (pole_sud) jje=jj_end-1
58
59c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
60      do l=1,llm
61        do j=jjb,jje
62          vzon(j,l)=0.
63          do i=1,iim
64            vzon(j,l)=vzon(j,l)+vcov(i,j,l)/float(iim)
65          enddo
66        enddo
67      enddo
68c$OMP END DO NOWAIT   
69
70c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
71      do l=1,llm
72        do j=jjb,jje
73          do i=1,iip1
74            dv(i,j,l)=dv(i,j,l)-rdamp(l)*(vcov(i,j,l)-vzon(j,l))
75          enddo
76        enddo
77      enddo
78c$OMP END DO NOWAIT
79
80      jjb=jj_begin
81      jje=jj_end
82      IF (pole_nord) jjb=jj_begin+1
83      IF (pole_sud)  jje=jj_end-1
84
85c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
86      do l=1,llm
87        do j=jjb,jje
88          uzon(j,l)=0.
89          tzon(j,l)=0.
90          do i=1,iim
91            uzon(j,l)=uzon(j,l)+ucov(i,j,l)/float(iim)
92            tzon(j,l)=tzon(j,l)+teta(i,j,l)/float(iim)
93          enddo
94        enddo
95      enddo
96c$OMP END DO NOWAIT
97
98C   AMORTISSEMENTS LINEAIRES:
99
100c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
101      do l=1,llm
102        do j=jjb,jje
103          do i=1,iip1
104            du(i,j,l)=du(i,j,l)-rdamp(l)*(ucov(i,j,l)-uzon(j,l))
105            dh(i,j,l)=dh(i,j,l)-rdamp(l)*(teta(i,j,l)-tzon(j,l))
106          enddo
107       enddo
108      enddo
109c$OMP END DO NOWAIT
110     
111
112      RETURN
113      END
Note: See TracBrowser for help on using the repository browser.