/[lmdze]/trunk/Sources/phylmd/stdlevvar.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/stdlevvar.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/phylmd/stdlevvar.f revision 104 by guez, Thu Sep 4 10:05:52 2014 UTC trunk/Sources/phylmd/stdlevvar.f revision 188 by guez, Tue Mar 22 16:31:39 2016 UTC
# Line 9  contains Line 9  contains
9    
10      ! From LMDZ4/libf/phylmd/stdlevvar.F90, version 1.3 2005/05/25 13:10:09      ! From LMDZ4/libf/phylmd/stdlevvar.F90, version 1.3 2005/05/25 13:10:09
11    
12        use coefcdrag_m, only: coefcdrag
13      USE suphec_m, ONLY: rg, rkappa      USE suphec_m, ONLY: rg, rkappa
14        use screenp_m, only: screenp
15    
16      ! Objet : calcul de la température et de l'humidité relative à 2 m      ! Objet : calcul de la température et de l'humidité relative à 2 m
17      ! et du module du vent à 10 m à partir des relations de      ! et du module du vent à 10 m à partir des relations de
# Line 22  contains Line 24  contains
24      INTEGER, intent(in):: klon      INTEGER, intent(in):: klon
25      ! dimension de la grille physique (= nb_pts_latitude X nb_pts_longitude)      ! dimension de la grille physique (= nb_pts_latitude X nb_pts_longitude)
26    
27      INTEGER, intent(in):: knon, nsrf      INTEGER, intent(in):: knon
28      ! knon----input-I- nombre de points pour un type de surface      ! knon----input-I- nombre de points pour un type de surface
29        INTEGER, intent(in):: nsrf
30      ! nsrf----input-I- indice pour le type de surface; voir indicesol.inc      ! nsrf----input-I- indice pour le type de surface; voir indicesol.inc
31      LOGICAL, intent(in):: zxli      LOGICAL, intent(in):: zxli
32      ! zxli----input-L- TRUE si calcul des cdrags selon Laurent Li      ! zxli----input-L- TRUE si calcul des cdrags selon Laurent Li
33      REAL, dimension(klon), intent(in):: u1, v1, t1, q1, z1, ts1      REAL, dimension(klon), intent(in):: u1
34      ! u1------input-R- vent zonal au 1er niveau du modele      ! u1------input-R- vent zonal au 1er niveau du modele
35        REAL, dimension(klon), intent(in):: v1
36      ! v1------input-R- vent meridien au 1er niveau du modele      ! v1------input-R- vent meridien au 1er niveau du modele
37        REAL, dimension(klon), intent(in):: t1
38      ! t1------input-R- temperature de l'air au 1er niveau du modele      ! t1------input-R- temperature de l'air au 1er niveau du modele
39        REAL, dimension(klon), intent(in):: q1
40      ! q1------input-R- humidite relative au 1er niveau du modele      ! q1------input-R- humidite relative au 1er niveau du modele
41        REAL, dimension(klon), intent(in):: z1
42      ! z1------input-R- geopotentiel au 1er niveau du modele      ! z1------input-R- geopotentiel au 1er niveau du modele
43        REAL, dimension(klon), intent(in):: ts1
44      ! ts1-----input-R- temperature de l'air a la surface      ! ts1-----input-R- temperature de l'air a la surface
45      REAL, dimension(klon), intent(in):: qsurf, rugos      REAL, dimension(klon), intent(in):: qsurf
46       ! qsurf---input-R- humidite relative a la surface       ! qsurf---input-R- humidite relative a la surface
47        REAL, dimension(klon), intent(in):: rugos
48      ! rugos---input-R- rugosite      ! rugos---input-R- rugosite
49     REAL, dimension(klon), intent(in):: psol, pat1     REAL, dimension(klon), intent(in):: psol
50      ! psol----input-R- pression au sol      ! psol----input-R- pression au sol
51       REAL, dimension(klon), intent(in):: pat1
52      ! pat1----input-R- pression au 1er niveau du modele      ! pat1----input-R- pression au 1er niveau du modele
53    
54      REAL, dimension(klon), intent(out):: t_2m, q_2m, t_10m, q_10m      REAL, dimension(klon), intent(out):: t_2m
55      ! t_2m---output-R- temperature de l'air a 2m      ! t_2m---output-R- temperature de l'air a 2m
56        REAL, dimension(klon), intent(out):: q_2m
57      ! q_2m---output-R- humidite relative a 2m      ! q_2m---output-R- humidite relative a 2m
58        REAL, dimension(klon), intent(out):: t_10m
59      ! t_10m--output-R- temperature de l'air a 10m      ! t_10m--output-R- temperature de l'air a 10m
60        REAL, dimension(klon), intent(out):: q_10m
61      ! q_10m--output-R- humidite specifique a 10m      ! q_10m--output-R- humidite specifique a 10m
62      REAL, dimension(klon), intent(out):: u_10m      REAL, dimension(klon), intent(out):: u_10m
63      ! u_10m--output-R- vitesse du vent a 10m      ! u_10m--output-R- vitesse du vent a 10m
# Line 55  contains Line 68  contains
68      ! RKAR : constante de von Karman      ! RKAR : constante de von Karman
69      REAL, PARAMETER:: RKAR=0.40      REAL, PARAMETER:: RKAR=0.40
70      ! niter : nombre iterations calcul "corrector"      ! niter : nombre iterations calcul "corrector"
71      INTEGER, parameter:: niter=2, ncon=niter-1      INTEGER, parameter:: niter=2
72    
73      ! Variables locales      ! Variables locales
74      INTEGER i, n      INTEGER i, n
# Line 71  contains Line 84  contains
84      REAL, dimension(klon):: zdte, zdq      REAL, dimension(klon):: zdte, zdq
85      ! lmon : longueur de Monin-Obukhov selon Hess, Colman and McAvaney      ! lmon : longueur de Monin-Obukhov selon Hess, Colman and McAvaney
86      DOUBLE PRECISION, dimension(klon):: lmon      DOUBLE PRECISION, dimension(klon):: lmon
     DOUBLE PRECISION, parameter:: eps=1.0D-20  
87      REAL, dimension(klon):: delu, delte, delq      REAL, dimension(klon):: delu, delte, delq
88      REAL, dimension(klon):: u_zref, te_zref, q_zref      REAL, dimension(klon):: u_zref, te_zref, q_zref
89      REAL, dimension(klon):: temp, pref      REAL, dimension(klon):: temp, pref
90      LOGICAL okri      LOGICAL okri
91      REAL, dimension(klon):: u_zref_p, temp_p, q_zref_p      REAL, dimension(klon):: u_zref_p, temp_p, q_zref_p
92      !convertgence      !convertgence
     REAL, dimension(klon):: te_zref_con, q_zref_con  
93      REAL, dimension(klon):: u_zref_c, temp_c, q_zref_c      REAL, dimension(klon):: u_zref_c, temp_c, q_zref_c
94      REAL, dimension(klon):: ok_pred, ok_corr      REAL, dimension(klon):: ok_pred, ok_corr
95    
# Line 112  contains Line 123  contains
123    
124      ! First aproximation of variables at zref        ! First aproximation of variables at zref  
125      zref = 2.0      zref = 2.0
126      CALL screenp(klon, knon, nsrf, speed, tpot, q1, &      CALL screenp(klon, knon, speed, tpot, q1, &
127           ts1, qsurf, rugos, lmon, &           ts1, qsurf, rugos, lmon, &
128           ustar, testar, qstar, zref, &           ustar, testar, qstar, zref, &
129           delu, delte, delq)           delu, delte, delq)
# Line 145  contains Line 156  contains
156            ! return to normal temperature            ! return to normal temperature
157    
158            temp(i) = te_zref(i) * (psol(i)/pref(i))**(-RKAPPA)            temp(i) = te_zref(i) * (psol(i)/pref(i))**(-RKAPPA)
   
           IF(n == ncon) THEN  
              te_zref_con(i) = te_zref(i)  
              q_zref_con(i) = q_zref(i)  
           ENDIF  
159         ENDDO         ENDDO
160      ENDDO      ENDDO
161    
# Line 169  contains Line 175  contains
175      ! First aproximation of variables at zref        ! First aproximation of variables at zref  
176    
177      zref = 10.0      zref = 10.0
178      CALL screenp(klon, knon, nsrf, speed, tpot, q1, &      CALL screenp(klon, knon, speed, tpot, q1, &
179           ts1, qsurf, rugos, lmon, &           ts1, qsurf, rugos, lmon, &
180           ustar, testar, qstar, zref, &           ustar, testar, qstar, zref, &
181           delu, delte, delq)           delu, delte, delq)

Legend:
Removed from v.104  
changed lines
  Added in v.188

  ViewVC Help
Powered by ViewVC 1.1.21