1 |
guez |
23 |
SUBROUTINE sugwd(nlon,nlev,paprs,pplay) |
2 |
|
|
|
3 |
|
|
!**** *SUGWD* INITIALIZE COMMON YOEGWD CONTROLLING GRAVITY WAVE DRAG |
4 |
|
|
|
5 |
|
|
! PURPOSE. |
6 |
|
|
! -------- |
7 |
|
|
! INITIALIZE YOEGWD, THE COMMON THAT CONTROLS THE |
8 |
|
|
! GRAVITY WAVE DRAG PARAMETRIZATION. |
9 |
|
|
|
10 |
|
|
!** INTERFACE. |
11 |
|
|
! ---------- |
12 |
|
|
! CALL *SUGWD* FROM *SUPHEC* |
13 |
|
|
! ----- ------ |
14 |
|
|
|
15 |
|
|
! EXPLICIT ARGUMENTS : |
16 |
|
|
! -------------------- |
17 |
|
|
! PSIG : VERTICAL COORDINATE TABLE |
18 |
|
|
! NLEV : NUMBER OF MODEL LEVELS |
19 |
|
|
|
20 |
|
|
! IMPLICIT ARGUMENTS : |
21 |
|
|
! -------------------- |
22 |
|
|
! COMMON YOEGWD |
23 |
|
|
|
24 |
|
|
! METHOD. |
25 |
|
|
! ------- |
26 |
|
|
! SEE DOCUMENTATION |
27 |
|
|
|
28 |
|
|
! EXTERNALS. |
29 |
|
|
! ---------- |
30 |
|
|
! NONE |
31 |
|
|
|
32 |
|
|
! REFERENCE. |
33 |
|
|
! ---------- |
34 |
|
|
! ECMWF Research Department documentation of the IFS |
35 |
|
|
|
36 |
|
|
! AUTHOR. |
37 |
|
|
! ------- |
38 |
|
|
! MARTIN MILLER *ECMWF* |
39 |
|
|
|
40 |
|
|
! MODIFICATIONS. |
41 |
|
|
! -------------- |
42 |
|
|
! ORIGINAL : 90-01-01 |
43 |
|
|
! ------------------------------------------------------------------ |
44 |
|
|
USE yoegwd |
45 |
|
|
IMPLICIT NONE |
46 |
|
|
|
47 |
|
|
! ----------------------------------------------------------------- |
48 |
|
|
! ---------------------------------------------------------------- |
49 |
|
|
|
50 |
|
|
INTEGER nlon, nlev, jk |
51 |
|
|
REAL, INTENT (IN) :: paprs(nlon,nlev+1) |
52 |
|
|
REAL, INTENT (IN) :: pplay(nlon,nlev) |
53 |
|
|
REAL zpr, zstra, zsigt, zpm1r |
54 |
|
|
|
55 |
|
|
!* 1. SET THE VALUES OF THE PARAMETERS |
56 |
|
|
! -------------------------------- |
57 |
|
|
|
58 |
|
|
100 CONTINUE |
59 |
|
|
|
60 |
|
|
PRINT *, ' DANS SUGWD NLEV=', nlev |
61 |
|
|
ghmax = 10000. |
62 |
|
|
|
63 |
|
|
zpr = 100000. |
64 |
|
|
zstra = 0.1 |
65 |
|
|
zsigt = 0.94 |
66 |
|
|
!old ZPR=80000. |
67 |
|
|
!old ZSIGT=0.85 |
68 |
|
|
|
69 |
|
|
DO 110 jk = 1, nlev |
70 |
|
|
zpm1r = pplay(nlon/2,jk)/paprs(nlon/2,1) |
71 |
|
|
IF (zpm1r>=zsigt) THEN |
72 |
|
|
nktopg = jk |
73 |
|
|
END IF |
74 |
|
|
zpm1r = pplay(nlon/2,jk)/paprs(nlon/2,1) |
75 |
|
|
IF (zpm1r>=zstra) THEN |
76 |
|
|
nstra = jk |
77 |
|
|
END IF |
78 |
|
|
110 CONTINUE |
79 |
|
|
|
80 |
|
|
! inversion car dans orodrag on compte les niveaux a l'envers |
81 |
|
|
nktopg = nlev - nktopg + 1 |
82 |
|
|
nstra = nlev - nstra |
83 |
|
|
PRINT *, ' DANS SUGWD nktopg=', nktopg |
84 |
|
|
PRINT *, ' DANS SUGWD nstra=', nstra |
85 |
|
|
|
86 |
|
|
gsigcr = 0.80 |
87 |
|
|
|
88 |
|
|
gkdrag = 0.2 |
89 |
|
|
grahilo = 1. |
90 |
|
|
grcrit = 0.01 |
91 |
|
|
gfrcrit = 1.0 |
92 |
|
|
gkwake = 0.50 |
93 |
|
|
|
94 |
|
|
gklift = 0.50 |
95 |
|
|
gvcrit = 0.0 |
96 |
|
|
|
97 |
|
|
|
98 |
|
|
! ---------------------------------------------------------------- |
99 |
|
|
|
100 |
|
|
!* 2. SET VALUES OF SECURITY PARAMETERS |
101 |
|
|
! --------------------------------- |
102 |
|
|
|
103 |
|
|
200 CONTINUE |
104 |
|
|
|
105 |
|
|
gvsec = 0.10 |
106 |
|
|
gssec = 1.E-12 |
107 |
|
|
|
108 |
|
|
gtsec = 1.E-07 |
109 |
|
|
|
110 |
|
|
! ---------------------------------------------------------------- |
111 |
|
|
|
112 |
|
|
RETURN |
113 |
|
|
END |