/[lmdze]/trunk/dyn3d/pres2lev.f
ViewVC logotype

Annotation of /trunk/dyn3d/pres2lev.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 82 - (hide annotations)
Wed Mar 5 14:57:53 2014 UTC (10 years, 3 months ago) by guez
File size: 2091 byte(s)
Changed all ".f90" suffixes to ".f".
1 guez 3
2 guez 81 ! $Header: /home/cvsroot/LMDZ4/libf/dyn3d/pres2lev.F,v 1.1.1.1 2004/05/19
3     ! 12:53:07 lmdzadmin Exp $
4 guez 3
5 guez 81 ! ******************************************************
6     SUBROUTINE pres2lev(varo, varn, lmo, lmn, po, pn, ni, nj)
7 guez 3
8 guez 81 ! interpolation lineaire pour passer
9     ! a une nouvelle discretisation verticale pour
10     ! les variables de GCM
11     ! Francois Forget (01/1995)
12 guez 3
13 guez 81 ! MOdif remy roca 12/97 pour passer de pres2sig
14     ! **********************************************************
15 guez 3
16 guez 81 IMPLICIT NONE
17 guez 3
18 guez 81 ! Declarations:
19     ! ==============
20 guez 3
21 guez 81 ! ARGUMENTS
22     ! """""""""
23 guez 3
24 guez 81 INTEGER lmo ! dimensions ancienne couches (input)
25     INTEGER lmn ! dimensions nouvelle couches (input)
26     INTEGER lmomx ! dimensions ancienne couches (input)
27     INTEGER lmnmx ! dimensions nouvelle couches (input)
28 guez 3
29 guez 81 PARAMETER (lmomx=10000, lmnmx=10000)
30 guez 3
31 guez 81 REAL po(lmo) ! niveau de pression en millibars
32     INTEGER ni, nj
33     REAL pn(ni, nj, lmn) ! niveau de pression en pascals
34 guez 3
35 guez 81 INTEGER i, j, nhoriz ! nombre de point horizontale (input)
36    
37     REAL varo(ni, nj, lmo) ! var dans l'ancienne grille (input)
38     REAL varn(ni, nj, lmn) ! var dans la nouvelle grille (output)
39    
40     REAL zvaro(lmomx), zpo(lmomx)
41    
42     ! Autres variables
43     ! """"""""""""""""
44     INTEGER n, ln, lo
45     REAL coef
46    
47     ! run
48     ! ====
49     DO i = 1, ni
50     DO j = 1, nj
51     ! a chaque point de grille correspond un nouveau sigma old
52     ! qui vaut pres(l)/ps(i,j)
53     DO lo = 1, lmo
54     zpo(lo) = po(lmo+1-lo)
55     zvaro(lo) = varo(i, j, lmo+1-lo)
56     END DO
57    
58     DO ln = 1, lmn
59     IF (pn(i,j,ln)>=zpo(1)) THEN
60     varn(i, j, ln) = zvaro(1)
61     ELSE IF (pn(i,j,ln)<=zpo(lmo)) THEN
62     varn(i, j, ln) = zvaro(lmo)
63     ELSE
64     DO lo = 1, lmo - 1
65     IF ((pn(i,j,ln)<=zpo(lo)) .AND. (pn(i,j,ln)>zpo(lo+1))) THEN
66     coef = (pn(i,j,ln)-zpo(lo))/(zpo(lo+1)-zpo(lo))
67     varn(i, j, ln) = zvaro(lo) + coef*(zvaro(lo+1)-zvaro(lo))
68     ! print*,'pn(',ln,')=',pn(i,j,ln),varn(i,j,ln)
69     END IF
70     END DO
71     END IF
72     END DO
73    
74     END DO
75     END DO
76     RETURN
77     END SUBROUTINE pres2lev

  ViewVC Help
Powered by ViewVC 1.1.21