- Timestamp:
- Jan 16, 2025, 6:32:38 PM (7 hours ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lmdz_lscp_old.f90
r5285 r5480 3 3 ! 4 4 MODULE lmdz_lscp_old 5 PRIVATE 6 7 INTEGER, PARAMETER :: ninter=5 ! sous-intervals pour la precipitation 8 LOGICAL, PARAMETER :: cpartiel=.TRUE. ! condensation partielle 9 REAL, PARAMETER :: t_coup=234.0 10 REAL, PARAMETER :: DDT0=.01 11 REAL, PARAMETER :: ztfondue=278.15 12 13 LOGICAL, SAVE :: appel1er=.TRUE. 14 !$OMP THREADPRIVATE(appel1er) 15 16 PUBLIC fisrtilp_first, fisrtilp 17 5 18 CONTAINS 19 20 ! firstilp first call part 21 SUBROUTINE fisrtilp_first(klon, klev, dtime, pfrac_nucl, pfrac_1nucl, pfrac_impa) 22 USE lmdz_lscp_ini, ONLY: prt_level, lunout 23 IMPLICIT NONE 24 REAL, INTENT(IN) :: dtime ! intervalle du temps (s) 25 INTEGER, INTENT(IN) :: klon, klev 26 INTEGER :: i, k 27 28 !AA 29 ! Coeffients de fraction lessivee : pour OFF-LINE 30 ! 31 REAL, DIMENSION(klon,klev), INTENT(OUT) :: pfrac_nucl 32 REAL, DIMENSION(klon,klev), INTENT(OUT) :: pfrac_1nucl 33 REAL, DIMENSION(klon,klev), INTENT(OUT) :: pfrac_impa 34 35 IF (appel1er) THEN 36 WRITE(lunout,*) 'fisrtilp, ninter:', ninter 37 WRITE(lunout,*) 'fisrtilp, cpartiel:', cpartiel 38 WRITE(lunout,*) 'FISRTILP VERSION LUDO' 39 40 IF (ABS(dtime/REAL(ninter)-360.0).GT.0.001) THEN 41 WRITE(lunout,*) 'fisrtilp: Ce n est pas prevu, voir Z.X.Li', dtime 42 WRITE(lunout,*) 'Je prefere un sous-intervalle de 6 minutes' 43 ! CALL abort 44 ENDIF 45 ! 46 !cdir collapse 47 DO k = 1, klev 48 DO i = 1, klon 49 pfrac_nucl(i,k)=1. 50 pfrac_1nucl(i,k)=1. 51 pfrac_impa(i,k)=1. 52 ENDDO 53 ENDDO 54 appel1er = .FALSE. 55 ENDIF 56 57 END SUBROUTINE fisrtilp_first 58 6 59 SUBROUTINE fisrtilp(klon,klev,dtime,paprs,pplay,t,q,ptconv,ratqs,sigma_qtherm, & 7 60 d_t, d_q, d_ql, d_qi, rneb,rneblsvol,radliq, rain, snow, & … … 117 170 REAL :: smallestreal 118 171 119 INTEGER, PARAMETER :: ninter=5 ! sous-intervals pour la precipitation 120 LOGICAL, PARAMETER :: cpartiel=.TRUE. ! condensation partielle 121 REAL, PARAMETER :: t_coup=234.0 122 REAL, PARAMETER :: DDT0=.01 123 REAL, PARAMETER :: ztfondue=278.15 124 ! -------------------------------------------------------------------------------- 172 ! -------------------------------------------------------------------------------- 125 173 ! 126 174 ! Variables locales: … … 142 190 143 191 REAL, DIMENSION(klon) :: zpdf_sig,zpdf_k,zpdf_delta, Zpdf_a,zpdf_b,zpdf_e1,zpdf_e2, qcloud 144 REAL :: erf145 192 146 193 REAL :: zqev, zqevt, zqev0,zqevi, zqevti, zdelq … … 165 212 REAL, DIMENSION(klon) :: zmqc 166 213 ! 167 LOGICAL, SAVE :: appel1er=.TRUE.168 !$OMP THREADPRIVATE(appel1er)169 214 ! 170 215 ! iflag_oldbug_fisrtilp=0 enleve le BUG par JYG : tglace_min -> tglace_max … … 196 241 REAL, DIMENSION(klon) :: zlh_solid 197 242 REAL :: zm_solid 243 REAL :: tmp_var1d(klon) ! temporary variable for call site 198 244 199 245 … … 218 264 219 265 if (prt_level>9)write(lunout,*)'NUAGES4 A. JAM' 220 IF (appel1er) THEN 221 WRITE(lunout,*) 'fisrtilp, ninter:', ninter 222 WRITE(lunout,*) 'fisrtilp, cpartiel:', cpartiel 223 WRITE(lunout,*) 'FISRTILP VERSION LUDO' 224 225 IF (ABS(dtime/REAL(ninter)-360.0).GT.0.001) THEN 226 WRITE(lunout,*) 'fisrtilp: Ce n est pas prevu, voir Z.X.Li', dtime 227 WRITE(lunout,*) 'Je prefere un sous-intervalle de 6 minutes' 228 ! CALL abort 229 ENDIF 230 appel1er = .FALSE. 231 ! 232 !cdir collapse 233 DO k = 1, klev 234 DO i = 1, klon 235 pfrac_nucl(i,k)=1. 236 pfrac_1nucl(i,k)=1. 237 pfrac_impa(i,k)=1. 238 beta(i,k)=0. !RomP initialisation 239 ENDDO 240 ENDDO 241 242 ENDIF ! test sur appel1er 266 267 beta(:,:)=0. !RomP initialisation => ym : could be probably removed but keept by security 268 243 269 ! 244 270 !MAf Initialisation a 0 de zoliq … … 954 980 ! -------------------------- 955 981 if (iflag_t_glace.ge.1) then 956 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:)) 982 tmp_var1d(:) = pplay(:,k)/paprs(:,1) 983 CALL icefrac_lsc(klon, zt(:), tmp_var1d, zfice(:)) 957 984 endif 958 985 … … 1123 1150 ELSE 1124 1151 if (iflag_t_glace.ge.1) then 1125 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:)) 1152 tmp_var1d(:) = pplay(:,k)/paprs(:,1) 1153 CALL icefrac_lsc(klon,zt(:),tmp_var1d,zfice(:)) 1126 1154 endif 1127 1155 if (iflag_fisrtilp_qsat.lt.1) then … … 1242 1270 ENDDO 1243 1271 ELSE ! of IF (iflag_t_glace.EQ.0) 1244 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:)) 1272 tmp_var1d(:) = pplay(:,k)/paprs(:,1) 1273 CALL icefrac_lsc(klon,zt(:), tmp_var1d, zfice(:)) 1245 1274 ! DO i = 1, klon 1246 1275 ! IF (rneb(i,k).GT.0.0) THEN -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r5474 r5480 77 77 USE lmdz_lscp, ONLY : lscp 78 78 USE lmdz_call_cloud_optics_prop, ONLY : call_cloud_optics_prop 79 USE lmdz_lscp_old, ONLY : fisrtilp 79 USE lmdz_lscp_old, ONLY : fisrtilp, fisrtilp_first 80 80 USE lmdz_call_blowing_snow, ONLY : call_blowing_snow_sublim_sedim 81 81 USE lmdz_wake_ini, ONLY : wake_ini … … 374 374 USE phys_output_write_spl_mod, ONLY: phys_output_write_spl 375 375 USE phytracr_spl_mod, ONLY: phytracr_spl_out_init, phytracr_spl 376 USE s2s, ONLY : s2s_initialize 376 377 IMPLICIT NONE 377 378 !>====================================================================== … … 1346 1347 1347 1348 IF (first) THEN 1349 1350 CALL s2s_initialize ! initialization of source to source tools 1351 1348 1352 ! CALL init_etat0_limit_unstruct 1349 1353 ! IF (.NOT. create_etat0_limit) CALL init_limit_read(days_elapsed) … … 3896 3900 3897 3901 ELSE 3898 3902 3903 CALL fisrtilp_first(klon, klev, phys_tstep, pfrac_impa, pfrac_nucl, pfrac_1nucl) 3899 3904 CALL fisrtilp(klon,klev,phys_tstep,paprs,pplay, & 3900 3905 t_seri, q_seri,ptconv,ratqs,sigma_qtherm, &
Note: See TracChangeset
for help on using the changeset viewer.