source: trunk/LMDZ.GENERIC/libf/dyn3d/geopot.F @ 2236

Last change on this file since 2236 was 1422, checked in by milmd, 10 years ago

In GENERIC, MARS and COMMON models replace some include files by modules (usefull for decoupling physics with dynamics).

File size: 1.8 KB
Line 
1      SUBROUTINE geopot (ngrid, teta, pk, pks, phis, phi )
2      IMPLICIT NONE
3
4c=======================================================================
5c
6c   Auteur:  P. Le Van
7c   -------
8c
9c   Objet:
10c   ------
11c
12c    *******************************************************************
13c    ....   calcul du geopotentiel aux milieux des couches    .....
14c    *******************************************************************
15c
16c     ....   l'integration se fait de bas en haut  ....
17c
18c     .. ngrid,teta,pk,pks,phis sont des argum. d'entree pour le s-pg ..
19c              phi               est un  argum. de sortie pour le s-pg .
20c
21c=======================================================================
22c-----------------------------------------------------------------------
23c   Declarations:
24c   -------------
25
26#include "dimensions.h"
27#include "paramet.h"
28
29c   Arguments:
30c   ----------
31
32      INTEGER ngrid
33      REAL teta(ngrid,llm),pks(ngrid),phis(ngrid),pk(ngrid,llm) ,
34     *       phi(ngrid,llm)
35      real zz(ngrid)
36
37
38c   Local:
39c   ------
40
41      INTEGER  l, ij, count
42      logical flag
43
44
45c-----------------------------------------------------------------------
46c     calcul de phi au niveau 1 pres du sol  .....
47
48      flag=.false.
49      count=0
50c     call dump2d(iip1,jjp1,teta(:,1),'TETA COUCHE 1')
51c     zz(:)=pks(:)-pk(:,1)
52c     call dump2d(iip1,jjp1,zz(:),'DPK SURF-1')
53
54      DO   ij  = 1, ngrid
55          phi( ij,1 ) = phis( ij ) + teta(ij,1) * ( pks(ij) - pk(ij,1) )
56      ENDDO
57
58c     calcul de phi aux niveaux superieurs  .......
59
60      DO  l = 2,llm
61        DO  ij    = 1,ngrid
62        phi(ij,l) = phi(ij,l-1) + 0.5 * ( teta(ij,l)  + teta(ij,l-1) )
63     *                              *   (  pk(ij,l-1) -  pk(ij,l)    )
64        ENDDO
65      ENDDO
66
67      RETURN
68      END
Note: See TracBrowser for help on using the repository browser.