source: LMDZ6/trunk/libf/phylmd/lmdz_ratqs_ini.F90 @ 4976

Last change on this file since 4976 was 4812, checked in by fhourdin, 9 months ago

Amélioration des ratqs interactifs par Louis

File size: 2.4 KB
RevLine 
[4613]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
[4812]60tau_var = 700. ! temps de relaxation de la variabilit?? pour les thermiques
[4613]61fac_tau = 2.
62tau_cumul = 1000
[4812]63a_ratqs_wake = 3.    ! param??tre pilotant l'importance du terme d??pendant des poches froides
[4613]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)
[4739]69CALL getin_p('a_ratqs_cv', a_ratqs_cv)
[4613]70
[4739]71!--------------------------------------------------------
[4812]72! Initialisation des variances pour la param??trisation
[4739]73! pronostique des variances de Louis.
74! Ne marche pour le moment qu'en 1D en forcant une
[4812]75! initialisation des variances ?? une valeur constante.
[4739]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
[4812]83          povariance(i,k) = 0.00000000001
84          var_conv(i,k) = 0.00000000001
[4739]85      enddo
86    enddo
87else
[4740]88    print*, 'conserver la variance dans les restarts'
[4739]89endif
90!--------------------------------------------------------
91
[4613]92 RETURN
93
94END SUBROUTINE ratqs_ini
95END MODULE lmdz_ratqs_ini
Note: See TracBrowser for help on using the repository browser.