/[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

revision 134 by guez, Wed Apr 29 15:47:56 2015 UTC revision 208 by guez, Wed Dec 7 16:44:53 2016 UTC
# Line 11  contains Line 11  contains
11    
12      use coefcdrag_m, only: coefcdrag      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 18  contains Line 19  contains
19    
20      ! Reference: Hess, Colman and McAvaney (1995)      ! Reference: Hess, Colman and McAvaney (1995)
21    
22      ! Author: I. Musat, 01.07.2002      ! Author: I. Musat, July 1st, 2002
23    
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      INTEGER, intent(in):: knon ! nombre de points pour un type de surface
28      ! knon----input-I- nombre de points pour un type de surface  
29      INTEGER, intent(in):: nsrf      INTEGER, intent(in):: nsrf
30      ! nsrf----input-I- indice pour le type de surface; voir indicesol.inc      ! indice pour le type de surface; voir indicesol.inc
31      LOGICAL, intent(in):: zxli  
32      ! zxli----input-L- TRUE si calcul des cdrags selon Laurent Li      LOGICAL, intent(in):: zxli ! calcul des cdrags selon Laurent Li
33      REAL, dimension(klon), intent(in):: u1      REAL, dimension(klon), intent(in):: u1 ! vent zonal au 1er niveau du modele
34      ! u1------input-R- vent zonal au 1er niveau du modele  
35      REAL, dimension(klon), intent(in):: v1      REAL, dimension(klon), intent(in):: v1
36      ! v1------input-R- vent meridien au 1er niveau du modele      ! 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      REAL, dimension(klon), intent(in):: t1
39        ! temperature de l'air au 1er niveau du modele
40    
41      REAL, dimension(klon), intent(in):: q1      REAL, dimension(klon), intent(in):: q1
42      ! q1------input-R- humidite relative au 1er niveau du modele      ! humidite relative au 1er niveau du modele
43      REAL, dimension(klon), intent(in):: z1  
44      ! z1------input-R- geopotentiel au 1er niveau du modele      REAL, dimension(klon), intent(in):: z1
45      REAL, dimension(klon), intent(in):: ts1      ! geopotentiel au 1er niveau du modele
46      ! ts1-----input-R- temperature de l'air a la surface  
47      REAL, dimension(klon), intent(in):: qsurf      REAL, dimension(klon), intent(in):: ts1 ! temperature de l'air a la surface
48       ! qsurf---input-R- humidite relative a la surface      REAL, dimension(klon), intent(in):: qsurf ! humidite relative a la surface
49      REAL, dimension(klon), intent(in):: rugos      REAL, dimension(klon), intent(in):: rugos ! rugosite
50      ! rugos---input-R- rugosite      REAL, dimension(klon), intent(in):: psol ! pression au sol
51     REAL, dimension(klon), intent(in):: psol      REAL, dimension(klon), intent(in):: pat1 ! pression au 1er niveau du modele
52      ! psol----input-R- pression au sol      REAL, dimension(klon), intent(out):: t_2m ! temperature de l'air a 2m
53     REAL, dimension(klon), intent(in):: pat1      REAL, dimension(klon), intent(out):: q_2m ! humidite relative a 2m
54      ! pat1----input-R- pression au 1er niveau du modele      REAL, dimension(klon), intent(out):: t_10m ! temperature de l'air a 10m
55        REAL, dimension(klon), intent(out):: q_10m ! humidite specifique a 10m
56      REAL, dimension(klon), intent(out):: t_2m      REAL, dimension(klon), intent(out):: u_10m ! vitesse du vent a 10m
     ! t_2m---output-R- temperature de l'air a 2m  
     REAL, dimension(klon), intent(out):: q_2m  
     ! q_2m---output-R- humidite relative a 2m  
     REAL, dimension(klon), intent(out):: t_10m  
     ! t_10m--output-R- temperature de l'air a 10m  
     REAL, dimension(klon), intent(out):: q_10m  
     ! q_10m--output-R- humidite specifique a 10m  
     REAL, dimension(klon), intent(out):: u_10m  
     ! u_10m--output-R- vitesse du vent a 10m  
57      REAL, intent(out):: ustar(klon) ! u*      REAL, intent(out):: ustar(klon) ! u*
58    
59      ! Local:      ! Local:
# Line 67  contains Line 61  contains
61      ! RKAR : constante de von Karman      ! RKAR : constante de von Karman
62      REAL, PARAMETER:: RKAR=0.40      REAL, PARAMETER:: RKAR=0.40
63      ! niter : nombre iterations calcul "corrector"      ! niter : nombre iterations calcul "corrector"
64      INTEGER, parameter:: niter=2, ncon=niter-1      INTEGER, parameter:: niter=2
65    
66      ! Variables locales      ! Variables locales
67      INTEGER i, n      INTEGER i, n
# Line 83  contains Line 77  contains
77      REAL, dimension(klon):: zdte, zdq      REAL, dimension(klon):: zdte, zdq
78      ! lmon : longueur de Monin-Obukhov selon Hess, Colman and McAvaney      ! lmon : longueur de Monin-Obukhov selon Hess, Colman and McAvaney
79      DOUBLE PRECISION, dimension(klon):: lmon      DOUBLE PRECISION, dimension(klon):: lmon
     DOUBLE PRECISION, parameter:: eps=1.0D-20  
80      REAL, dimension(klon):: delu, delte, delq      REAL, dimension(klon):: delu, delte, delq
81      REAL, dimension(klon):: u_zref, te_zref, q_zref      REAL, dimension(klon):: u_zref, te_zref, q_zref
82      REAL, dimension(klon):: temp, pref      REAL, dimension(klon):: temp, pref
83      LOGICAL okri      LOGICAL okri
84      REAL, dimension(klon):: u_zref_p, temp_p, q_zref_p      REAL, dimension(klon):: u_zref_p, temp_p, q_zref_p
85      !convertgence      !convertgence
     REAL, dimension(klon):: te_zref_con, q_zref_con  
86      REAL, dimension(klon):: u_zref_c, temp_c, q_zref_c      REAL, dimension(klon):: u_zref_c, temp_c, q_zref_c
87      REAL, dimension(klon):: ok_pred, ok_corr      REAL, dimension(klon):: ok_pred, ok_corr
88    
# Line 124  contains Line 116  contains
116    
117      ! First aproximation of variables at zref        ! First aproximation of variables at zref  
118      zref = 2.0      zref = 2.0
119      CALL screenp(klon, knon, nsrf, speed, tpot, q1, &      CALL screenp(klon, knon, speed, tpot, q1, &
120           ts1, qsurf, rugos, lmon, &           ts1, qsurf, rugos, lmon, &
121           ustar, testar, qstar, zref, &           ustar, testar, qstar, zref, &
122           delu, delte, delq)           delu, delte, delq)
# Line 157  contains Line 149  contains
149            ! return to normal temperature            ! return to normal temperature
150    
151            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  
152         ENDDO         ENDDO
153      ENDDO      ENDDO
154    
# Line 181  contains Line 168  contains
168      ! First aproximation of variables at zref        ! First aproximation of variables at zref  
169    
170      zref = 10.0      zref = 10.0
171      CALL screenp(klon, knon, nsrf, speed, tpot, q1, &      CALL screenp(klon, knon, speed, tpot, q1, &
172           ts1, qsurf, rugos, lmon, &           ts1, qsurf, rugos, lmon, &
173           ustar, testar, qstar, zref, &           ustar, testar, qstar, zref, &
174           delu, delte, delq)           delu, delte, delq)

Legend:
Removed from v.134  
changed lines
  Added in v.208

  ViewVC Help
Powered by ViewVC 1.1.21