1 |
guez |
3 |
SUBROUTINE geopot(ngrid,teta,pk,pks,phis,phi) |
2 |
|
|
|
3 |
|
|
! From libf/dyn3d/geopot.F,v 1.1.1.1 2004/05/19 |
4 |
|
|
|
5 |
|
|
USE dimens_m |
6 |
|
|
USE paramet_m |
7 |
|
|
|
8 |
|
|
IMPLICIT NONE |
9 |
|
|
|
10 |
|
|
! Auteur: P. Le Van |
11 |
|
|
|
12 |
|
|
! Objet: |
13 |
|
|
! calcul du geopotentiel aux milieux des couches |
14 |
|
|
! l'integration se fait de bas en haut |
15 |
|
|
|
16 |
|
|
! Arguments: |
17 |
|
|
INTEGER, INTENT (IN):: ngrid |
18 |
|
|
REAL, INTENT (IN):: teta(ngrid,llm), pks(ngrid) |
19 |
|
|
REAL, INTENT (IN) :: phis(ngrid) |
20 |
|
|
REAL, INTENT (IN) :: pk(ngrid,llm) |
21 |
|
|
REAL, INTENT (out):: phi(ngrid,llm) |
22 |
|
|
|
23 |
|
|
! Local: |
24 |
|
|
INTEGER l, ij |
25 |
|
|
|
26 |
|
|
! ----------------------------------------------------------------------- |
27 |
|
|
|
28 |
|
|
! calcul de phi au niveau 1 pres du sol ..... |
29 |
|
|
DO ij = 1, ngrid |
30 |
|
|
phi(ij,1) = phis(ij) + teta(ij,1)*(pks(ij)-pk(ij,1)) |
31 |
|
|
end DO |
32 |
|
|
|
33 |
|
|
! calcul de phi aux niveaux superieurs ....... |
34 |
|
|
DO l = 2, llm |
35 |
|
|
DO ij = 1, ngrid |
36 |
|
|
phi(ij,l) = phi(ij,l-1) + 0.5 * (teta(ij,l) + teta(ij,l-1)) & |
37 |
|
|
* (pk(ij,l-1) - pk(ij,l)) |
38 |
|
|
END DO |
39 |
|
|
END DO |
40 |
|
|
|
41 |
|
|
END SUBROUTINE geopot |