LMDZ
screenc.F90
Go to the documentation of this file.
1 !
2 ! $Id: screenc.F90 2243 2015-03-24 13:28:51Z fhourdin $
3 !
4  SUBROUTINE screenc(klon, knon, nsrf, zxli, &
5  speed, temp, q_zref, zref, &
6  ts, qsurf, z0m, z0h, psol, &
7  ustar, testar, qstar, okri, ri1, &
8  pref, delu, delte, delq)
9  IMPLICIT NONE
10 !-----------------------------------------------------------------------
11 !
12 ! Objet : calcul "correcteur" des anomalies du vent, de la temperature
13 ! potentielle et de l'humidite relative au niveau de reference zref et
14 ! par rapport au 1er niveau (pour u) ou a la surface (pour theta et q)
15 ! a partir des equations de Louis.
16 !
17 ! Reference : Hess, Colman et McAvaney (1995)
18 !
19 ! I. Musat, 01.07.2002
20 !-----------------------------------------------------------------------
21 !
22 ! klon----input-I- dimension de la grille physique (= nb_pts_latitude X nb_pts_longitude)
23 ! knon----input-I- nombre de points pour un type de surface
24 ! nsrf----input-I- indice pour le type de surface; voir indice_sol_mod.F90
25 ! zxli----input-L- TRUE si calcul des cdrags selon Laurent Li
26 ! speed---input-R- module du vent au 1er niveau du modele
27 ! temp----input-R- temperature de l'air au 1er niveau du modele
28 ! q_zref--input-R- humidite relative au 1er niveau du modele
29 ! zref----input-R- altitude de reference
30 ! ts------input-R- temperature de l'air a la surface
31 ! qsurf---input-R- humidite relative a la surface
32 ! z0m, z0h---input-R- rugosite
33 ! psol----input-R- pression au sol
34 ! ustar---input-R- facteur d'echelle pour le vent
35 ! testar--input-R- facteur d'echelle pour la temperature potentielle
36 ! qstar---input-R- facteur d'echelle pour l'humidite relative
37 ! okri----input-L- TRUE si on veut tester le nb. Richardson entre la sfce
38 ! et zref par rapport au Ri entre la sfce et la 1ere couche
39 ! ri1-----input-R- nb. Richardson entre la surface et la 1ere couche
40 !
41 ! pref----input-R- pression au niveau de reference
42 ! delu----input-R- anomalie du vent par rapport au 1er niveau
43 ! delte---input-R- anomalie de la temperature potentielle par rapport a la surface
44 ! delq----input-R- anomalie de l'humidite relative par rapport a la surface
45 !
46  INTEGER, intent(in) :: klon, knon, nsrf
47  LOGICAL, intent(in) :: zxli, okri
48  REAL, dimension(klon), intent(in) :: speed, temp, q_zref
49  REAL, intent(in) :: zref
50  REAL, dimension(klon), intent(in) :: ts, qsurf, z0m, z0h, psol
51  REAL, dimension(klon), intent(in) :: ustar, testar, qstar, ri1
52 !
53  REAL, dimension(klon), intent(out) :: pref, delu, delte, delq
54 !-----------------------------------------------------------------------
55  include "YOMCST.h"
56 !
57 ! Variables locales
58  INTEGER :: i
59  REAL, dimension(klon) :: cdram, cdrah, cdran, zri1, gref
60 !
61 !-------------------------------------------------------------------------
62  DO i=1, knon
63  gref(i) = zref*rg
64  ENDDO
65 !
66 ! Richardson at reference level
67 !
68 ! CALL coefcdrag (klon, knon, nsrf, zxli, &
69 ! speed, temp, q_zref, gref, &
70 ! psol, ts, qsurf, rugos, &
71 ! okri, ri1, &
72 ! cdram, cdrah, cdran, zri1, &
73 ! pref)
74 ! Fuxing WANG, 04/03/2015, replace the coefcdrag by the merged version: cdrag
75  CALL cdrag (knon, nsrf, &
76  speed, temp, q_zref, gref, &
77  psol, ts, qsurf, z0m, z0h, &
78  cdram, cdrah, zri1, pref)
79  DO i = 1, knon
80  delu(i) = ustar(i)/sqrt(cdram(i))
81  delte(i)= (testar(i)* sqrt(cdram(i)))/ &
82  cdrah(i)
83  delq(i)= (qstar(i)* sqrt(cdram(i)))/ &
84  cdrah(i)
85  ENDDO
86 !
87  RETURN
88  END SUBROUTINE screenc
subroutine screenc(klon, knon, nsrf, zxli, speed, temp, q_zref, zref, ts, qsurf, z0m, z0h, psol, ustar, testar, qstar, okri, ri1, pref, delu, delte, delq)
Definition: screenc.F90:9
subroutine cdrag(knon, nsrf, speed, t1, q1, zgeop1, psol, tsurf, qsurf, z0m, z0h, pcfm, pcfh, zri, pref)
Definition: cdrag.F90:8
real rg
Definition: comcstphy.h:1