/[lmdze]/trunk/phylmd/Interface_surf/screenc.f90
ViewVC logotype

Annotation of /trunk/phylmd/Interface_surf/screenc.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 272 - (hide annotations)
Wed Jul 11 14:51:28 2018 UTC (5 years, 10 months ago) by guez
Original Path: trunk/phylmd/screenc.f
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 guez 225 module screenc_m
2    
3     IMPLICIT NONE
4    
5     contains
6    
7 guez 227 SUBROUTINE screenc(klon, knon, nsrf, speed, temp, q_zref, zref, ts, &
8     qsurf, rugos, psol, ustar, testar, qstar, pref, delu, delte, delq)
9 guez 225
10 guez 227 ! From LMDZ4/libf/phylmd/screenc.F90, version 1.1.1.1, 2004/05/19 12:53:09
11 guez 225
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 guez 227 use coefcdrag_m, only: coefcdrag
23     use SUPHEC_M, only: RG
24    
25 guez 225 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 guez 246 REAL, intent(in):: ustar(:) ! (knon) facteur d'\'echelle pour le vent
44     REAL, dimension(klon), intent(in):: testar
45 guez 225 ! testar--input-R- facteur d'echelle pour la temperature potentielle
46 guez 246 REAL, dimension(klon), intent(in):: qstar
47 guez 225 ! qstar---input-R- facteur d'echelle pour l'humidite relative
48    
49 guez 272 REAL, intent(out):: pref(:) ! (knon) pression au niveau de reference
50 guez 225 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 guez 272 REAL, dimension(klon):: cdram, cdrah, gref
61 guez 225
62     !-------------------------------------------------------------------------
63    
64     DO i=1, knon
65     gref(i) = zref*RG
66     ENDDO
67    
68     ! Richardson at reference level
69    
70 guez 246 CALL coefcdrag(nsrf, speed(:knon), temp(:knon), q_zref(:knon), &
71 guez 272 gref(:knon), psol(:knon), ts, qsurf, rugos, cdram, cdrah, pref)
72 guez 225
73     DO i = 1, knon
74 guez 227 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 guez 225 ENDDO
78    
79     END SUBROUTINE screenc
80    
81     end module screenc_m

  ViewVC Help
Powered by ViewVC 1.1.21