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

Contents of /trunk/phylmd/screenc.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 272 - (show annotations)
Wed Jul 11 14:51:28 2018 UTC (5 years, 10 months ago) by guez
File size: 2984 byte(s)
Add arguments psol and pref to clcdrag, in preparation of merge with
coefcdrag. Remove intent out arguments cdran and zri1 of coefcdrag,
not used. Make argument pref of coefcdrag optional, in preparation of
merge with clcdrag. Remove useless intermediary local variable zdphi
in coefcdrag. Remove unused local variable ri1 in stdlevvar.

1 module screenc_m
2
3 IMPLICIT NONE
4
5 contains
6
7 SUBROUTINE screenc(klon, knon, nsrf, speed, temp, q_zref, zref, ts, &
8 qsurf, rugos, psol, ustar, testar, qstar, pref, delu, delte, delq)
9
10 ! From LMDZ4/libf/phylmd/screenc.F90, version 1.1.1.1, 2004/05/19 12:53:09
11
12 ! Objet : calcul "correcteur" des anomalies du vent, de la
13 ! temp\'erature potentielle et de l'humidit\'e relative au niveau
14 ! de r\'ef\'erence zref et par rapport au 1er niveau (pour u) ou
15 ! \`a la surface (pour theta et q) \`a partir des equations de
16 ! Louis.
17
18 ! Reference: Hess, Colman et McAvaney (1995)
19
20 ! I. Musat, 01.07.2002
21
22 use coefcdrag_m, only: coefcdrag
23 use SUPHEC_M, only: RG
24
25 INTEGER, intent(in):: klon
26 ! klon----input-I- dimension de la grille physique (=
27 ! nb_pts_latitude X nb_pts_longitude)
28 INTEGER, intent(in):: knon
29 ! knon----input-I- nombre de points pour un type de surface
30 INTEGER, intent(in):: nsrf
31 ! nsrf----input-I- indice pour le type de surface; voir indicesol.inc
32 REAL, dimension(klon), intent(in):: speed, temp, q_zref
33 ! speed---input-R- module du vent au 1er niveau du modele
34 ! temp----input-R- temperature de l'air au 1er niveau du modele
35 ! q_zref--input-R- humidite relative au 1er niveau du modele
36 REAL, intent(in):: zref
37 ! zref----input-R- altitude de reference
38 REAL, dimension(klon), intent(in):: ts, qsurf, rugos, psol
39 ! ts------input-R- temperature de l'air a la surface
40 ! qsurf---input-R- humidite relative a la surface
41 ! rugos---input-R- rugosite
42 ! psol----input-R- pression au sol
43 REAL, intent(in):: ustar(:) ! (knon) facteur d'\'echelle pour le vent
44 REAL, dimension(klon), intent(in):: testar
45 ! testar--input-R- facteur d'echelle pour la temperature potentielle
46 REAL, dimension(klon), intent(in):: qstar
47 ! qstar---input-R- facteur d'echelle pour l'humidite relative
48
49 REAL, intent(out):: pref(:) ! (knon) pression au niveau de reference
50 REAL, dimension(klon), intent(out):: delu
51 ! delu----input-R- anomalie du vent par rapport au 1er niveau
52 REAL, dimension(klon), intent(out):: delte
53 ! delte---input-R- anomalie de la temperature potentielle par
54 ! rapport a la surface
55 REAL, dimension(klon), intent(out):: delq
56 ! delq----input-R- anomalie de l'humidite relative par rapport a la surface
57
58 ! Local:
59 INTEGER i
60 REAL, dimension(klon):: cdram, cdrah, gref
61
62 !-------------------------------------------------------------------------
63
64 DO i=1, knon
65 gref(i) = zref*RG
66 ENDDO
67
68 ! Richardson at reference level
69
70 CALL coefcdrag(nsrf, speed(:knon), temp(:knon), q_zref(:knon), &
71 gref(:knon), psol(:knon), ts, qsurf, rugos, cdram, cdrah, pref)
72
73 DO i = 1, knon
74 delu(i) = ustar(i) / sqrt(cdram(i))
75 delte(i) = testar(i) * sqrt(cdram(i)) / cdrah(i)
76 delq(i) = qstar(i) * sqrt(cdram(i)) / cdrah(i)
77 ENDDO
78
79 END SUBROUTINE screenc
80
81 end module screenc_m

  ViewVC Help
Powered by ViewVC 1.1.21