source: codes/icosagcm/branches/SATURN_DYNAMICO/LMDZ.COMMON/config/ppsrc/dyn/pression_p.f @ 224

Last change on this file since 224 was 224, checked in by ymipsl, 10 years ago
File size: 2.4 KB
Line 
1      SUBROUTINE pression_p( ngrid, ap, bp, ps, p )
2      USE parallel_lmdz
3c
4
5c      Auteurs : P. Le Van , Fr.Hourdin  .
6
7c  ************************************************************************
8c     Calcule la pression p(l) aux differents niveaux l = 1 ( niveau du
9c     sol) a l = llm +1 ,ces niveaux correspondant aux interfaces des (llm) 
10c     couches , avec  p(ij,llm +1) = 0.  et p(ij,1) = ps(ij)  .     
11c  ************************************************************************
12c
13      IMPLICIT NONE
14c
15!-----------------------------------------------------------------------
16!   INCLUDE 'dimensions.h'
17!
18!   dimensions.h contient les dimensions du modele
19!   ndm est tel que iim=2**ndm
20!-----------------------------------------------------------------------
21
22      INTEGER iim,jjm,llm,ndm
23
24      PARAMETER (iim= 128,jjm=96,llm=64,ndm=1)
25
26!-----------------------------------------------------------------------
27!
28! $Header$
29!
30!
31!  ATTENTION!!!!: ce fichier include est compatible format fixe/format libre
32!                 veillez  n'utiliser que des ! pour les commentaires
33!                 et  bien positionner les & des lignes de continuation
34!                 (les placer en colonne 6 et en colonne 73)
35!
36!
37!-----------------------------------------------------------------------
38!   INCLUDE 'paramet.h'
39
40      INTEGER  iip1,iip2,iip3,jjp1,llmp1,llmp2,llmm1
41      INTEGER  kftd,ip1jm,ip1jmp1,ip1jmi1,ijp1llm
42      INTEGER  ijmllm,mvar
43      INTEGER jcfil,jcfllm
44
45      PARAMETER( iip1= iim+1,iip2=iim+2,iip3=iim+3                       &
46     &    ,jjp1=jjm+1-1/jjm)
47      PARAMETER( llmp1 = llm+1,  llmp2 = llm+2, llmm1 = llm-1 )
48      PARAMETER( kftd  = iim/2 -ndm )
49      PARAMETER( ip1jm  = iip1*jjm,  ip1jmp1= iip1*jjp1 )
50      PARAMETER( ip1jmi1= ip1jm - iip1 )
51      PARAMETER( ijp1llm= ip1jmp1 * llm, ijmllm= ip1jm * llm )
52      PARAMETER( mvar= ip1jmp1*( 2*llm+1) + ijmllm )
53      PARAMETER( jcfil=jjm/2+5, jcfllm=jcfil*llm )
54
55!-----------------------------------------------------------------------
56c
57      INTEGER ngrid
58      INTEGER l,ij
59 
60      REAL ap( llmp1 ), bp( llmp1 ), ps( ngrid ), p( ngrid,llmp1 ) 
61     
62      INTEGER ijb,ije
63
64     
65      ijb=ij_begin-iip1
66      ije=ij_end+2*iip1
67     
68      if (pole_nord) ijb=ij_begin
69      if (pole_sud)  ije=ij_end
70
71c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 
72      DO    l    = 1, llmp1
73        DO  ij   = ijb, ije
74         p(ij,l) = ap(l) + bp(l) * ps(ij)
75        ENDDO
76      ENDDO
77c$OMP END DO NOWAIT   
78      RETURN
79      END
Note: See TracBrowser for help on using the repository browser.