source: LMDZ6/branches/cirrus/libf/phylmd/lmdz_ratqs_ini.F90 @ 5434

Last change on this file since 5434 was 4812, checked in by fhourdin, 11 months ago

Amélioration des ratqs interactifs par Louis

File size: 2.4 KB
Line 
1MODULE lmdz_ratqs_ini
2
3IMPLICIT NONE
4
5save
6
7integer :: lunout
8
9INTEGER, SAVE, PROTECTED :: nbsrf,is_lic,is_ter
10REAL, SAVE, PROTECTED :: RG,RV,RD,RCPD,RLSTT,RLVTT,RTT
11REAL, SAVE, PROTECTED :: a_ratqs_cv
12REAL, SAVE, PROTECTED :: tau_var
13REAL, SAVE, PROTECTED :: fac_tau
14REAL, SAVE, PROTECTED :: tau_cumul
15REAL, SAVE, PROTECTED :: a_ratqs_wake
16INTEGER, SAVE, PROTECTED :: dqimpl
17
18real, allocatable, SAVE :: povariance(:,:)
19!$OMP THREADPRIVATE(povariance)
20real, allocatable, SAVE :: var_conv(:,:)
21!$OMP THREADPRIVATE(var_conv)
22
23!$OMP THREADPRIVATE(a_ratqs_cv,tau_var,fac_tau,tau_cumul,a_ratqs_wake)
24
25
26CONTAINS
27SUBROUTINE ratqs_ini(klon,klev,iflag_thermals,lunout_in,nbsrf_in,is_lic_in,is_ter_in,RG_in,RV_in,RD_in,RCPD_in,RLSTT_in,RLVTT_in,RTT_in)
28
29   USE ioipsl_getin_p_mod, ONLY : getin_p
30
31integer, intent(in) :: klon,klev,iflag_thermals,lunout_in
32integer, intent(in) :: nbsrf_in,is_lic_in,is_ter_in
33real, intent(in) :: RG_in,RV_in,RD_in,RCPD_in,RLSTT_in,RLVTT_in,RTT_in
34
35integer :: i,k
36
37nbsrf   =nbsrf_in
38is_lic  =is_lic_in
39is_ter  =is_ter_in
40RG      =RG_in   
41RV      =RV_in
42RD      =RD_in
43RCPD    =RCPD_in
44RLSTT   =RLSTT_in
45RLVTT   =RLVTT_in
46RTT     =RTT_in
47
48print*,'ratqs_ini'
49if (iflag_thermals==15.or.iflag_thermals==16) then
50   dqimpl=-1
51else
52   dqimpl=1
53endif
54lunout=lunout_in
55
56allocate(povariance(klon,klev))
57allocate(var_conv(klon,klev))
58
59
60tau_var = 700. ! temps de relaxation de la variabilit?? pour les thermiques
61fac_tau = 2.
62tau_cumul = 1000
63a_ratqs_wake = 3.    ! param??tre pilotant l'importance du terme d??pendant des poches froides
64a_ratqs_cv = 1.
65CALL getin_p('tau_var', tau_var)
66CALL getin_p('fac_tau', fac_tau)
67CALL getin_p('tau_cumul', tau_cumul)
68CALL getin_p('a_ratqs_wake', a_ratqs_wake)
69CALL getin_p('a_ratqs_cv', a_ratqs_cv)
70
71!--------------------------------------------------------
72! Initialisation des variances pour la param??trisation
73! pronostique des variances de Louis.
74! Ne marche pour le moment qu'en 1D en forcant une
75! initialisation des variances ?? une valeur constante.
76! A terme la variance doit devenir une variable d'etat
77! passee en argument
78!--------------------------------------------------------
79
80if (klon.eq.1) then
81    do k=1,klev
82      do i=1,klon
83          povariance(i,k) = 0.00000000001
84          var_conv(i,k) = 0.00000000001
85      enddo
86    enddo
87else
88    print*, 'conserver la variance dans les restarts'
89endif
90!--------------------------------------------------------
91
92 RETURN
93
94END SUBROUTINE ratqs_ini
95END MODULE lmdz_ratqs_ini
Note: See TracBrowser for help on using the repository browser.