source: lmdz_wrf/WRFV3/phys/module_ra_hs.F @ 1

Last change on this file since 1 was 1, checked in by lfita, 10 years ago
  • -- --- Opening of the WRF+LMDZ coupling repository --- -- -

WRF: version v3.3
LMDZ: version v1818

More details in:

File size: 4.2 KB
Line 
1!WRF:MODEL_LAYER:PHYSICS
2!
3MODULE module_ra_hs
4
5CONTAINS
6
7!------------------------------------------------------------------
8   SUBROUTINE HSRAD(RTHRATEN,p8w,p_phy,pi_phy,dz8w,t_phy,          &
9                     t8w, rho_phy, R_d,G,CP,dt,xlat,degrad,        &
10                     ids,ide, jds,jde, kds,kde,                    &
11                     ims,ime, jms,jme, kms,kme,                    &
12                     its,ite, jts,jte, kts,kte                     )
13
14!------------------------------------------------------------------
15   IMPLICIT NONE
16!------------------------------------------------------------------
17   INTEGER,    INTENT(IN   ) ::        ids,ide, jds,jde, kds,kde, &
18                                       ims,ime, jms,jme, kms,kme, &
19                                       its,ite, jts,jte, kts,kte 
20
21   REAL, INTENT(IN    )      ::        DEGRAD
22
23   REAL, DIMENSION( ims:ime, kms:kme, jms:jme ),                  &
24         INTENT(INOUT)  ::                              RTHRATEN
25
26   REAL, INTENT(IN   )   ::                   R_d,CP,G,dt
27
28   REAL, DIMENSION( ims:ime, kms:kme, jms:jme ),                  &
29         INTENT(IN ) ::                                     dz8w, &
30                                                             p8w, &
31                                                           p_phy, &
32                                                          pi_phy, &
33                                                           t_phy, &
34                                                             t8w, &
35                                                         rho_phy 
36   REAL, DIMENSION( ims:ime, jms:jme ),                           &
37         INTENT(IN ) ::                                     xlat
38
39   INTEGER :: i,j,K,NK
40   real :: delty,delthez,p0,sec_p_d,sigb,kka,kks,kkf,rcp
41   real :: ttmp,teq,sig,sigterm,kkt,t_tend
42
43!------------------------------------------------------------------
44! Newtonian relaxation scheme from Held and Suarez, Bull. Amer. Met.
45! Soc., Vol. 75, No. 10., p1825-1830, 1994.  (box on page 1826)
46! CEN and MIR  31-JUL-04
47
48   delty   = 60.0
49   delthez = 10.0
50   p0      = 100000.0
51   sec_p_d = 86400.
52   sigb    = 0.7
53   kka     = 1.0/40.0   ! units of per day
54   kks     = 0.25
55   kkf     = 1.0
56   rcp     = R_d/CP
57
58   j_loop: DO J=jts,MIN(jte,jde-1)
59   k_loop: DO K=kts,MIN(kte,kde-1)
60   i_loop: DO I=its,MIN(ite,ide-1)
61
62      ttmp = 315.0 - delty*(sin(xlat(i,j)*degrad))**2.0- &
63               delthez*alog(p_phy(i,k,j)/p0)*(cos(xlat(i,j)*degrad))**2.0
64               
65      teq=max(200.0,ttmp*(p_phy(i,k,j)/p0)**rcp)
66
67      sig=p_phy(i,k,j)/p8w(i,1,j)
68      sigterm=max(0.0,(sig-sigb)/(1.0-sigb))
69
70      kkt=kka+(kks-kka)*sigterm*(cos(xlat(i,j)*degrad))**4.0
71
72      t_tend=-kkt*(t_phy(i,k,j)-teq)/sec_p_d  ! t_tend in kinetic K/s
73
74      RTHRATEN(I,K,J)=RTHRATEN(I,K,J)+t_tend/pi_phy(i,k,j)
75
76   ENDDO i_loop
77   ENDDO k_loop
78   ENDDO j_loop                                         
79
80   END SUBROUTINE HSRAD
81
82!====================================================================
83   SUBROUTINE hsinit(RTHRATEN,restart,                              &
84                     ids, ide, jds, jde, kds, kde,                  &
85                     ims, ime, jms, jme, kms, kme,                  &
86                     its, ite, jts, jte, kts, kte                   )
87!--------------------------------------------------------------------
88   IMPLICIT NONE
89!--------------------------------------------------------------------
90   LOGICAL , INTENT(IN)           :: restart
91   INTEGER , INTENT(IN)           :: ids, ide, jds, jde, kds, kde,  &
92                                     ims, ime, jms, jme, kms, kme,  &
93                                     its, ite, jts, jte, kts, kte
94
95   REAL , DIMENSION( ims:ime , kms:kme , jms:jme ) , INTENT(INOUT) ::        &
96                                                          RTHRATEN
97   INTEGER :: i, j, k, itf, jtf, ktf
98
99   jtf=min0(jte,jde-1)
100   ktf=min0(kte,kde-1)
101   itf=min0(ite,ide-1)
102
103   IF(.not.restart)THEN
104     DO j=jts,jtf
105     DO k=kts,ktf
106     DO i=its,itf
107        RTHRATEN(i,k,j)=0.
108     ENDDO
109     ENDDO
110     ENDDO
111   ENDIF
112
113   END SUBROUTINE hsinit
114
115!====================================================================
116
117END MODULE module_ra_hs
Note: See TracBrowser for help on using the repository browser.