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

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

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

trunk/libf/phylmd/screenc.f90 revision 3 by guez, Wed Feb 27 13:16:39 2008 UTC trunk/Sources/phylmd/screenc.f revision 225 by guez, Mon Oct 16 12:35:41 2017 UTC
# Line 1  Line 1 
1  !  module screenc_m
2  ! $Header: /home/cvsroot/LMDZ4/libf/phylmd/screenc.F90,v 1.1.1.1 2004/05/19 12:53:09 lmdzadmin Exp $  
3  !    IMPLICIT NONE
4        SUBROUTINE screenc(klon, knon, nsrf, zxli, &  
5                           speed, temp, q_zref, zref, &  contains
6                           ts, qsurf, rugos, psol, &  
7                           ustar, testar, qstar, okri, ri1, &    SUBROUTINE screenc(klon, knon, nsrf, zxli, speed, temp, q_zref, zref, ts, &
8                           pref, delu, delte, delq)         qsurf, rugos, psol, ustar, testar, qstar, okri, ri1, pref, delu, &
9        use YOMCST         delte, delq)
10        IMPLICIT NONE      
11  !-----------------------------------------------------------------------      use coefcdrag_m, only: coefcdrag
12  !      use SUPHEC_M
13  ! Objet : calcul "correcteur" des anomalies du vent, de la temperature  
14  !         potentielle et de l'humidite relative au niveau de reference zref et      ! From LMDZ4/libf/phylmd/screenc.F90, version 1.1.1.1 2004/05/19 12:53:09
15  !         par rapport au 1er niveau (pour u) ou a la surface (pour theta et q)  
16  !         a partir des equations de Louis.      ! Objet : calcul "correcteur" des anomalies du vent, de la
17  !      ! temp\'erature potentielle et de l'humidit\'e relative au niveau
18  ! Reference : Hess, Colman et McAvaney (1995)      ! de r\'ef\'erence zref et par rapport au 1er niveau (pour u) ou
19  !      ! \`a la surface (pour theta et q) \`a partir des equations de
20  ! I. Musat, 01.07.2002      ! Louis.
21  !-----------------------------------------------------------------------  
22  !      ! Reference: Hess, Colman et McAvaney (1995)
23  ! klon----input-I- dimension de la grille physique (= nb_pts_latitude X nb_pts_longitude)  
24  ! knon----input-I- nombre de points pour un type de surface      ! I. Musat, 01.07.2002
25  ! nsrf----input-I- indice pour le type de surface; voir indicesol.inc  
26  ! zxli----input-L- TRUE si calcul des cdrags selon Laurent Li      INTEGER, intent(in):: klon
27  ! speed---input-R- module du vent au 1er niveau du modele      ! klon----input-I- dimension de la grille physique (=
28  ! temp----input-R- temperature de l'air au 1er niveau du modele      ! nb_pts_latitude X nb_pts_longitude)
29  ! q_zref--input-R- humidite relative au 1er niveau du modele      INTEGER, intent(in):: knon
30  ! zref----input-R- altitude de reference      ! knon----input-I- nombre de points pour un type de surface
31  ! ts------input-R- temperature de l'air a la surface      INTEGER, intent(in):: nsrf
32  ! qsurf---input-R- humidite relative a la surface      ! nsrf----input-I- indice pour le type de surface; voir indicesol.inc
33  ! rugos---input-R- rugosite      LOGICAL, intent(in):: zxli
34  ! psol----input-R- pression au sol      ! zxli----input-L- TRUE si calcul des cdrags selon Laurent Li
35  ! ustar---input-R- facteur d'echelle pour le vent      REAL, dimension(klon), intent(in):: speed, temp, q_zref
36  ! testar--input-R- facteur d'echelle pour la temperature potentielle      ! speed---input-R- module du vent au 1er niveau du modele
37  ! qstar---input-R- facteur d'echelle pour l'humidite relative      ! temp----input-R- temperature de l'air au 1er niveau du modele
38  ! okri----input-L- TRUE si on veut tester le nb. Richardson entre la sfce      ! q_zref--input-R- humidite relative au 1er niveau du modele
39  !                  et zref par rapport au Ri entre la sfce et la 1ere couche      REAL, intent(in):: zref
40  ! ri1-----input-R- nb. Richardson entre la surface et la 1ere couche      ! zref----input-R- altitude de reference
41  !      REAL, dimension(klon), intent(in):: ts, qsurf, rugos, psol
42  ! pref----input-R- pression au niveau de reference      ! ts------input-R- temperature de l'air a la surface
43  ! delu----input-R- anomalie du vent par rapport au 1er niveau      ! qsurf---input-R- humidite relative a la surface
44  ! delte---input-R- anomalie de la temperature potentielle par rapport a la surface      ! rugos---input-R- rugosite
45  ! delq----input-R- anomalie de l'humidite relative par rapport a la surface      ! psol----input-R- pression au sol
46  !      REAL, dimension(klon), intent(in):: ustar, testar, qstar
47        INTEGER, intent(in) :: klon, knon, nsrf      ! ustar---input-R- facteur d'echelle pour le vent
48        LOGICAL, intent(in) :: zxli, okri      ! testar--input-R- facteur d'echelle pour la temperature potentielle
49        REAL, dimension(klon), intent(in) :: speed, temp, q_zref      ! qstar---input-R- facteur d'echelle pour l'humidite relative
50        REAL, intent(in) :: zref      LOGICAL, intent(in):: okri
51        REAL, dimension(klon), intent(in) :: ts, qsurf, rugos, psol      ! okri----input-L- TRUE si on veut tester le nb. Richardson entre la sfce
52        REAL, dimension(klon), intent(in) :: ustar, testar, qstar, ri1              ! et zref par rapport au Ri entre la sfce et la 1ere couche
53  !      REAL, dimension(klon), intent(in):: ri1
54        REAL, dimension(klon), intent(out) :: pref, delu, delte, delq      ! ri1-----input-R- nb. Richardson entre la surface et la 1ere couche
55  !-----------------------------------------------------------------------  
56  !      REAL, dimension(klon), intent(out):: pref
57  ! Variables locales        ! pref----input-R- pression au niveau de reference
58        INTEGER :: i      REAL, dimension(klon), intent(out):: delu
59        REAL, dimension(klon) :: cdram, cdrah, cdran, zri1, gref      ! delu----input-R- anomalie du vent par rapport au 1er niveau
60  !      REAL, dimension(klon), intent(out):: delte
61  !-------------------------------------------------------------------------      ! delte---input-R- anomalie de la temperature potentielle par
62        DO i=1, knon      ! rapport a la surface
63          gref(i) = zref*RG      REAL, dimension(klon), intent(out):: delq
64        ENDDO      ! delq----input-R- anomalie de l'humidite relative par rapport a la surface
65  !  
66  ! Richardson at reference level      ! Local:
67  !      INTEGER i
68        CALL coefcdrag (klon, knon, nsrf, zxli, &      REAL, dimension(klon):: cdram, cdrah, cdran, zri1, gref
69                      speed, temp, q_zref, gref, &  
70                      psol, ts, qsurf, rugos, &      !-------------------------------------------------------------------------
71                      okri, ri1, &  
72                      cdram, cdrah, cdran, zri1, &      DO i=1, knon
73                      pref)         gref(i) = zref*RG
74  !      ENDDO
75        DO i = 1, knon  
76          delu(i) = ustar(i)/sqrt(cdram(i))      ! Richardson at reference level
77          delte(i)= (testar(i)* sqrt(cdram(i)))/ &  
78                     cdrah(i)      CALL coefcdrag (klon, knon, nsrf, zxli, speed, temp, q_zref, gref, psol, &
79          delq(i)= (qstar(i)* sqrt(cdram(i)))/ &           ts, qsurf, rugos, okri, ri1, cdram, cdrah, cdran, zri1, pref)
80                    cdrah(i)  
81        ENDDO      DO i = 1, knon
82  !         delu(i) = ustar(i)/sqrt(cdram(i))
83        RETURN         delte(i)= (testar(i)* sqrt(cdram(i)))/ cdrah(i)
84        END SUBROUTINE screenc         delq(i)= (qstar(i)* sqrt(cdram(i)))/ cdrah(i)
85        ENDDO
86    
87      END SUBROUTINE screenc
88    
89    end module screenc_m

Legend:
Removed from v.3  
changed lines
  Added in v.225

  ViewVC Help
Powered by ViewVC 1.1.21