source: LMDZ5/branches/LMDZ5-DOFOCO/libf/dyn3dmem/massbarxy_loc.F

Last change on this file was 1632, checked in by Laurent Fairhead, 12 years ago

Import initial du répertoire dyn3dmem

Attention! ceci n'est qu'une version préliminaire du code "basse mémoire":
le code contenu dans ce répertoire est basé sur la r1320 et a donc besoin
d'être mis à jour par rapport à la dynamique parallèle d'aujourd'hui.
Ce code est toutefois mis à disposition pour circonvenir à des problèmes
de mémoire que certaines configurations du modèle pourraient rencontrer.
Dans l'état, il compile et tourne sur vargas et au CCRT


Initial import of dyn3dmem

Warning! this is just a preliminary version of the memory light code:
it is based on r1320 of the code and thus needs to be updated before
it can replace the present dyn3dpar code. It is nevertheless put at your
disposal to circumvent some memory problems some LMDZ configurations may
encounter. In its present state, it will compile and run on vargas and CCRT

File size: 1.4 KB
Line 
1      SUBROUTINE massbarxy_loc(  masse, massebxy )
2      USE parallel
3      implicit none
4c **********************************************************************
5c
6c  Calcule les moyennes en x et  y de la masse d'air dans chaque maille.
7c **********************************************************************
8c    Auteurs : P. Le Van , Fr. Hourdin  .
9c   ..........
10c
11c  ..  masse          est  un  argum. d'entree  pour le s-pg ...
12c  ..  massebxy       est  un  argum. de sortie pour le s-pg ...
13c     
14c
15c     IMPLICIT NONE
16c
17#include "dimensions.h"
18#include "paramet.h"
19#include "comconst.h"
20#include "comgeom.h"
21c
22       REAL  masse( ijb_u:ije_u,llm ), massebxy( ijb_v:ije_v,llm )
23c
24      INTEGER ij,l,ijb,ije
25
26     
27      ijb=ij_begin-iip1
28      ije=ij_end
29     
30      if (pole_nord) ijb=ijb+iip1
31      if (pole_sud)  ije=ije-iip1
32
33c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)   
34      DO   100    l = 1 , llm
35c
36      DO 5 ij = ijb, ije - 1
37      massebxy( ij,l ) = masse(    ij  ,l ) * alpha2(   ij    )   +
38     +                   masse(   ij+1 ,l ) * alpha3(  ij+1   )   +
39     +                   masse( ij+iip1,l ) * alpha1( ij+iip1 )   +
40     +                   masse( ij+iip2,l ) * alpha4( ij+iip2 )
41   5  CONTINUE
42
43c    ....  correction pour     massebxy( iip1,j )  ........
44
45CDIR$ IVDEP
46
47      DO 7 ij = ijb+iip1-1, ije+iip1-1, iip1
48      massebxy( ij,l ) = massebxy( ij - iim,l )
49   7  CONTINUE
50
51100   CONTINUE
52c$OMP END DO NOWAIT
53c
54      RETURN
55      END
Note: See TracBrowser for help on using the repository browser.