LMDZ
surhcri.F90
Go to the documentation of this file.
1 !-----------------------------------------------------------------------
2  SUBROUTINE surhcri(KULOUT)
3 !-----------------------------------------------------------------------
4 !
5 !**** *SURHCRI * - COMPUTATION OF THE CRTITICAL RELATIVE HUMIDITY
6 ! PROFILE FOR SMITH'S CONDENSATION SCHEME.
7 !
8 !** Interface.
9 ! ----------
10 ! *CALL* *SURHCRI*
11 !
12 !-----------------------------------------------------------------------
13 !
14 ! - ARGUMENTS D'ENTREE./INPUT ARGUMENTS.
15 ! ------------------------------------
16 !
17 !-----------------------------------------------------------------------
18 !
19 ! - ARGUMENTS IMPLICITES.
20 ! ---------------------
21 !
22 ! COMMON /YOMPHY/
23 ! COMMON /YOMPHY0/
24 !
25 !*
26 !-----------------------------------------------------------------------
27 !
28 ! Auteur.
29 ! -------
30 ! 05-03, Luc Gerard (from Ph. Lopez acrhcri)
31 !
32 ! Modifications.
33 ! --------------
34 ! 06-10, nettoyage - R. Brozkova
35 !-----------------------------------------------------------------------
36 !
37 USE parkind1 ,ONLY : jpim ,jprb
38 USE yomhook ,ONLY : lhook, dr_hook
39 !
41 USE yomdim , ONLY : nflevg
42 USE yomgc , ONLY : gaw, gm
43 USE yomgem , ONLY : vp00, teqh
44 USE yomphy , ONLY : lgwrhcri
45 USE yomsta , ONLY : stpre
46 
47 IMPLICIT NONE
48 
49 INTEGER (KIND=JPIM),INTENT(IN) :: KULOUT
50 
51 ! LOCAL
52 
53 REAL(KIND=JPRB) :: ZVETAF
54 REAL(KIND=JPRB) :: ZGAW0,ZEGAW,ZFACT,ZFACT0,ZFACTA,ZFACTB,ZFACTC, &
55  & ZA,ZB,ZC
56 INTEGER (KIND=JPIM) :: JLEV
57 REAL(KIND=JPRB) :: ZHOOK_HANDLE
58 IF (lhook) CALL dr_hook('SURHCRI',0,zhook_handle)
59 
60 ! ------------------------------------------------------------------
61 
62 IF(nrhcri == nflevg) THEN
63 
64 ! ------------------------------------------------------------------
65 
66 ! CRITICAL RELATIVE HUMIDITY PROFILE
67 ! DEPENDENT ON THE LOCAL RESOLUTION.
68 ! ----------------------------------
69 
70  zfact0=(retamin*(retamin-1._jprb))**2
71  zfacta=(2._jprb*retamin-1._jprb)
72  zfactb=(1._jprb-3._jprb*retamin**2)
73  zfactc=(3._jprb*retamin-2._jprb)*retamin
74  IF (lgwrhcri) THEN
75  zgaw0=2.42e-05_jprb
76  zegaw=(1.0_jprb-exp(-gaw(1)/zgaw0))/zfact0
77  ELSE
78  zegaw=(1.0_jprb-grhcmod*exp(-1.0_jprb/(teqh*gm(1))))/zfact0
79  ENDIF
80 
81  zfact=(rhcrit2-rhcrit1)*zegaw
82  za=zfacta*zfact
83  zb=zfactb*zfact
84  zc=zfactc*zfact
85 
86  DO jlev=1,nflevg
87  zvetaf=stpre(jlev)/vp00
88  rhcri(jlev) = za * zvetaf**3 &
89  & + zb * zvetaf**2 &
90  & + zc * zvetaf &
91  & + rhcrit2
92  ENDDO
93 
94  WRITE(kulout,'(A)') 'RHCRI: SMITH SCHEME CRITICAL RH PROFILE:'
95  WRITE(kulout,'((10(G9.3)))') (rhcri(jlev),jlev=1,nflevg)
96 ELSE
97  WRITE(kulout,*) 'NRHCRI=',nrhcri,': GLOBAL MODEL, NO RHCRI INITIALISATION IN SETUP'
98 ENDIF
99 IF (lhook) CALL dr_hook('SURHCRI',1,zhook_handle)
100 END SUBROUTINE surhcri
real(kind=jprb) grhcmod
Definition: yomphy0.F90:558
real(kind=jprb), dimension(:), allocatable gaw
Definition: yomgc.F90:60
real(kind=jprb) rhcrit2
Definition: yomphy0.F90:553
real(kind=jprb), dimension(:), allocatable stpre
Definition: yomsta.F90:44
real(kind=jprb) rhcrit1
Definition: yomphy0.F90:552
integer(kind=jpim) nrhcri
Definition: yomphy0.F90:705
subroutine surhcri(KULOUT)
Definition: surhcri.F90:3
integer(kind=jpim) nflevg
Definition: yomdim.F90:112
Definition: yomgc.F90:1
Definition: yomgem.F90:1
real(kind=jprb) teqh
Definition: yomgem.F90:116
Definition: yomsta.F90:1
integer, parameter jprb
Definition: parkind1.F90:31
real(kind=jprb), dimension(:), allocatable rhcri
Definition: yomphy0.F90:704
Definition: yomdim.F90:1
real(kind=jprb) vp00
Definition: yomgem.F90:159
logical lhook
Definition: yomhook.F90:12
logical lgwrhcri
Definition: yomphy.F90:404
real(kind=jprb), dimension(:), allocatable gm
Definition: yomgc.F90:46
real(kind=jprb) retamin
Definition: yomphy0.F90:554
subroutine dr_hook(CDNAME, KSWITCH, PKEY)
Definition: yomhook.F90:17
Definition: yomphy.F90:1
integer, parameter jpim
Definition: parkind1.F90:13