source: trunk/LMDZ.MARS/libf/phymars/gwstress.F @ 1009

Last change on this file since 1009 was 38, checked in by emillour, 14 years ago

Ajout du modè Martien (mon LMDZ.MARS.BETA, du 28/01/2011) dans le rértoire mars, pour pouvoir suivre plus facilement les modifs.
EM

File size: 3.1 KB
Line 
1      SUBROUTINE GWSTRESS
2     *         (  klon  , klev
3     *         , KKCRIT, KSECT, KKHLIM, KTEST, KKCRITH, KCRIT, kkenvh
4     *         , kknu
5     *         , PRHO  , PSTAB, PVPH  , PVAR ,PVARor, psig 
6     *         , PTFR  , PTAU 
7     *         ,pgeom1 , pgamma, pd1  , pd2   ,pdmod ,pnu )
8C
9C**** *GWSTRESS*
10C
11C     PURPOSE.
12C     --------
13C
14C**   INTERFACE.
15C     ----------
16C     CALL *GWSTRESS*  FROM *GWDRAG*
17C
18C        EXPLICIT ARGUMENTS :
19C        --------------------
20C     ==== INPUTS ===
21C     ==== OUTPUTS ===
22C
23C        IMPLICIT ARGUMENTS :   NONE
24C        --------------------
25C
26C     METHOD.
27C     -------
28C
29C
30C     EXTERNALS.
31C     ----------
32C
33C
34C     REFERENCE.
35C     ----------
36C
37C        SEE ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE "I.F.S."
38C
39C     AUTHOR.
40C     -------
41C
42C     MODIFICATIONS.
43C     --------------
44C     F. LOTT PUT THE NEW GWD ON IFS      22/11/93
45C
46C-----------------------------------------------------------------------
47      implicit none
48#include "dimensions.h"
49#include "dimphys.h"
50#include "dimradmars.h"
51      integer klon,klev,kidia,kfdia
52
53#include "yoegwd.h"
54
55C-----------------------------------------------------------------------
56C
57C*       0.1   ARGUMENTS
58C              ---------
59C
60      INTEGER KKCRIT(NDLO2),KKCRITH(NDLO2),KCRIT(NDLO2),KSECT(NDLO2),
61     *        KKHLIM(NDLO2),KTEST(NDLO2),KKENVH(NDLO2),KKNU(NDLO2)
62C
63      REAL PRHO(NDLO2,klev+1),PSTAB(NDLO2,klev+1),PTAU(NDLO2,klev+1),
64     *     PVPH(NDLO2,klev+1),PVAR(NDLO2,4),PTFR(NDLO2),
65     *     pgeom1(NDLO2,klev),PVARor(NDLO2)
66C
67      real pd1(NDLO2),pd2(NDLO2),pnu(NDLO2),psig(NDLO2),pgamma(NDLO2)
68      real pdmod(NDLO2)
69C
70C-----------------------------------------------------------------------
71C
72C*       0.2   LOCAL ARRAYS
73C              ------------
74      integer jl
75      real zblock,zvar,zeff
76      logical lo
77
78C
79C-----------------------------------------------------------------------
80C
81C*       0.3   FUNCTIONS
82C              ---------
83C     ------------------------------------------------------------------
84C
85C*         1.    INITIALIZATION
86C                --------------
87
88
89      kidia=1
90      kfdia=klon
91
92
93C
94 100  CONTINUE
95C
96C*         3.1     GRAVITY WAVE STRESS.
97C
98  300 CONTINUE
99C
100C
101      DO 301 JL=kidia,kfdia
102      IF(KTEST(JL).EQ.1) THEN
103     
104C  EFFECTIVE MOUNTAIN HEIGHT ABOVE THE BLOCKED FLOW
105 
106c        IF(KKENVH(JL).EQ.KLEV)THEN
107         ZBLOCK=0.0
108c        ELSE
109c         ZBLOCK=(PGEOM1(JL,KKENVH(JL))+PGEOM1(JL,KKENVH(JL)+1))/2./RG         
110c        ENDIF
111     
112        ZVAR=PVAROR(JL)
113        ZEFF=AMAX1(0.,2.*ZVAR-ZBLOCK)
114
115        PTAU(JL,KLEV+1)=PRHO(JL,KLEV+1)*GKDRAG*psig(jl)*ZEFF**2
116     *    /4./ZVAR*PVPH(JL,KLEV+1)*pdmod(jl)*sqrt(pstab(jl,klev+1))
117
118C  TOO SMALL VALUE OF STRESS OR  LOW LEVEL FLOW INCLUDE CRITICAL LEVEL
119C  OR LOW LEVEL FLOW:  GRAVITY WAVE STRESS NUL.
120               
121        LO=(PTAU(JL,KLEV+1).LT.GTSEC).OR.(KCRIT(JL).GE.KKNU(JL))
122     *      .OR.(PVPH(JL,KLEV+1).LT.GVCRIT)
123c       IF(LO) PTAU(JL,KLEV+1)=0.0
124     
125      ELSE
126     
127          PTAU(JL,KLEV+1)=0.0
128         
129      ENDIF
130     
131  301 CONTINUE
132C
133      RETURN
134      END
Note: See TracBrowser for help on using the repository browser.