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

Contents of /trunk/phylmd/screenc.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 108 - (show annotations)
Tue Sep 16 14:00:41 2014 UTC (9 years, 7 months ago) by guez
File size: 3575 byte(s)
Imported writefield from LMDZ. Close at the end of gcm the files which
were created by writefiled (not done in LMDZ).

Removed procedures for the output of Grads files. Removed calls to
dump2d. In guide, replaced calls to wrgrads by calls to writefield.

In vlspltqs, removed redundant programming of saturation
pressure. Call foeew from module FCTTRE instead.

Bug fix in interpre: size of w exceeding size of correponding actual
argument wg in advtrac.

In leapfrog, call guide until the end of the run, instead of six hours
before the end.

Bug fix in readsulfate_preind: type of arguments.

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

  ViewVC Help
Powered by ViewVC 1.1.21