Changeset 4448 for LMDZ6/trunk/libf/phylmd/yamada4.F90
- Timestamp:
- Mar 2, 2023, 10:05:26 AM (19 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/yamada4.F90
r4289 r4448 4 4 cd, tke, km, kn, kq, ustar, iflag_pbl, drgpro) 5 5 6 USE dimphy 7 USE ioipsl_getin_p_mod, ONLY : getin_p 6 USE dimphy, only : klev,klon 8 7 USE phys_local_var_mod, only: tke_dissip,wprime 8 USE yamada_ini_mod, only : new_yamada4,yamada4_num,hboville 9 USE yamada_ini_mod, only : prt_level, lunout,pbl_lmixmin_alpha,b1,kap,viscom,viscoh 10 USE yamada_ini_mod, only : ric, yun,ydeux,lmixmin 9 11 10 12 IMPLICIT NONE 11 include "iniprint.h"12 ! .......................................................................13 ! ym#include "dimensions.h"14 ! ym#include "dimphy.h"15 13 ! ************************************************************************************************ 16 14 ! … … 111 109 !------- 112 110 113 INCLUDE "clesphys.h"114 115 111 REAL q2(klon, klev+1) 116 112 REAL kmpre(klon, klev+1), tmp2, qpre … … 121 117 INTEGER nlay, nlev 122 118 123 LOGICAL,SAVE :: hboville=.TRUE.124 REAL,SAVE :: viscom,viscoh125 !$OMP THREADPRIVATE( hboville,viscom,viscoh)126 119 INTEGER ig, jg, k 127 120 REAL ri, zrif, zalpha, zsm, zsn … … 136 129 REAL :: disseff 137 130 138 REAL,SAVE :: ric0,ric,rifc, b1, kap 139 !$OMP THREADPRIVATE(ric0,ric,rifc,b1,kap) 140 DATA b1, kap/16.6, 0.4/ 131 REAL,SAVE :: rifc 132 !$OMP THREADPRIVATE(rifc) 141 133 REAL,SAVE :: seuilsm, seuilalpha 142 134 !$OMP THREADPRIVATE(seuilsm, seuilalpha) 143 REAL,SAVE :: lmixmin144 !$OMP THREADPRIVATE(lmixmin)145 LOGICAL, SAVE :: new_yamada4146 INTEGER, SAVE :: yamada4_num147 !$OMP THREADPRIVATE(new_yamada4,yamada4_num)148 REAL, SAVE :: yun,ydeux149 !$OMP THREADPRIVATE(yun,ydeux)150 135 151 136 REAL frif, falpha, fsm 152 137 REAL rino(klon, klev+1), smyam(klon, klev), styam(klon, klev), & 153 138 lyam(klon, klev), knyam(klon, klev), w2yam(klon, klev), t2yam(klon, klev) 154 LOGICAL, SAVE :: firstcall = .TRUE.155 !$OMP THREADPRIVATE(firstcall)156 139 157 140 CHARACTER (len = 20) :: modname = 'yamada4' … … 168 151 169 152 170 IF (firstcall) THEN171 ! Seuil dans le code de turbulence172 new_yamada4=.false.173 CALL getin_p('new_yamada4',new_yamada4)174 153 175 154 IF (new_yamada4) THEN 176 155 ! Corrections et reglages issus du travail de these d'Etienne Vignon. 177 ric=0.143 ! qui donne des valeurs proches des seuils proposes178 ! dans YAMADA 1983 : sm=0.0845 (0.085 dans Y83)179 ! sm=1.1213 (1.12 dans Y83)180 CALL getin_p('yamada4_ric',ric)181 ric0=0.19489 ! ric=0.195 originalement, mais produisait sm<0182 ric=min(ric,ric0) ! Au dela de ric0, sm devient n??gatif183 156 rifc=frif(ric) 184 157 seuilsm=fsm(frif(ric)) 185 158 seuilalpha=falpha(frif(ric)) 186 yun=1.187 ydeux=2.188 hboville=.FALSE.189 viscom=1.46E-5190 viscoh=2.06E-5191 !lmixmin=1.0E-3192 lmixmin=0.193 yamada4_num=5194 159 ELSE 195 ric=0.195196 160 rifc=0.191 197 161 seuilalpha=1.12 198 162 seuilsm=0.085 199 yun=2.200 ydeux=1.201 hboville=.TRUE.202 viscom=0.203 viscoh=0.204 lmixmin=1.205 yamada4_num=0206 163 ENDIF 207 208 WRITE(lunout,*)'YAMADA4 RIc, RIfc, Sm_min, Alpha_min',ric,rifc,seuilsm,seuilalpha209 firstcall = .FALSE.210 CALL getin_p('lmixmin',lmixmin)211 CALL getin_p('yamada4_hboville',hboville)212 CALL getin_p('yamada4_num',yamada4_num)213 END IF214 215 216 164 217 165 !=============================================================================== … … 760 708 SUBROUTINE vdif_q2(timestep, gravity, rconst, ngrid, plev, temp, kmy, q2) 761 709 762 USE dimphy 710 USE dimphy, only : klev,klon 763 711 IMPLICIT NONE 764 712 … … 849 797 SUBROUTINE vdif_q2e(timestep, gravity, rconst, ngrid, plev, temp, kmy, q2) 850 798 851 USE dimphy 799 USE dimphy, only : klev,klon 852 800 IMPLICIT NONE 853 801 … … 920 868 921 869 922 USE dimphy 870 USE dimphy, only : klev,klon 871 USE yamada_ini_mod, only : l0 923 872 USE phys_state_var_mod, only: zstd, zsig, zmea 924 873 USE phys_local_var_mod, only: l_mixmin, l_mix 874 USE yamada_ini_mod, only : kap, kapb 925 875 926 876 ! zstd: ecart type de la'altitud e sous-maille … … 982 932 !------- 983 933 984 LOGICAL, SAVE :: firstcall = .TRUE.985 !$OMP THREADPRIVATE(firstcall)986 987 934 ! Outputs 988 935 !--------- … … 997 944 REAL h_oro(klon) 998 945 REAL hlim(klon) 999 REAL, SAVE :: kap=0.4,kapb=0.41000 !$OMP THREADPRIVATE(kap,kapb)1001 946 REAL zq 1002 947 REAL sq(klon), sqz(klon) 1003 REAL, ALLOCATABLE, SAVE :: l0(:)1004 !$OMP THREADPRIVATE(l0)1005 948 REAL fl, zzz, zl0, zq2, zn2 1006 949 REAL famorti, zzzz, zh_oro, zhlim … … 1030 973 1031 974 IF (ngrid==0) RETURN 1032 1033 IF (firstcall) THEN1034 ALLOCATE (l0(klon))1035 firstcall = .FALSE.1036 END IF1037 975 1038 976
Note: See TracChangeset
for help on using the changeset viewer.