Changeset 5876 for LMDZ6/branches/PBLSURF_GPUPORT/libf/phylmd/cdrag_mod.f90
- Timestamp:
- Nov 21, 2025, 3:58:45 PM (16 hours ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/PBLSURF_GPUPORT/libf/phylmd/cdrag_mod.f90
r5873 r5876 9 9 ! 10 10 IMPLICIT NONE 11 12 PRIVATE 13 14 LOGICAL, SAVE :: firstcall = .TRUE. 15 !$OMP THREADPRIVATE(firstcall) 16 INTEGER, SAVE :: iflag_corr_sta 17 !$OMP THREADPRIVATE(iflag_corr_sta) 18 INTEGER, SAVE :: iflag_corr_insta 19 !$OMP THREADPRIVATE(iflag_corr_insta) 20 LOGICAL, SAVE :: ok_cdrag_iter 21 !$OMP THREADPRIVATE(ok_cdrag_iter) 22 23 PUBLIC :: cdrag_init, cdrag 11 24 12 25 CONTAINS … … 16 29 !r original routine svn3623 17 30 ! 31 SUBROUTINE cdrag_init 32 USE ioipsl_getin_p_mod, ONLY : getin_p 33 USE modd_csts, ONLY : ini_csts 34 IMPLICIT NONE 35 36 ! On choisit les fonctions de stabilite utilisees au premier appel 37 !************************************************************************** 38 IF (firstcall) THEN 39 iflag_corr_sta=2 40 iflag_corr_insta=2 41 ok_cdrag_iter = .FALSE. 42 43 CALL getin_p('iflag_corr_sta',iflag_corr_sta) 44 CALL getin_p('iflag_corr_insta',iflag_corr_insta) 45 CALL getin_p('ok_cdrag_iter',ok_cdrag_iter) 46 47 CALL ini_csts 48 49 firstcall = .FALSE. 50 ENDIF 51 52 53 END SUBROUTINE cdrag_init 54 55 18 56 SUBROUTINE cdrag(knon, nsrf, & 19 57 speed, t1, q1, zgeop1, & … … 21 59 ri_in, iri_in, & 22 60 cdm, cdh, zri, pref, prain, tsol , pat1) 61 !$gpum horizontal knon 23 62 24 63 USE coare_cp_mod, ONLY: coare_cp … … 26 65 USE indice_sol_mod 27 66 USE print_control_mod, ONLY: lunout, prt_level 28 USE ioipsl_getin_p_mod, ONLY : getin_p29 67 USE lmdz_atke_turbulence_ini, ONLY : smmin, ric, cinf, cepsilon, pr_slope, pr_asym, pr_neut 30 68 USE yomcst_mod_h 31 69 USE clesphys_mod_h 32 70 USE yoethf_mod_h 71 USE clc_core_cp_mod, ONLY : clc_core_cp 72 USE ecumev6_flux_mod, ONLY : ecumev6_flux 33 73 IMPLICIT NONE 34 74 ! ================================================================= c … … 169 209 170 210 171 172 LOGICAL, SAVE :: firstcall = .TRUE.173 !$OMP THREADPRIVATE(firstcall)174 INTEGER, SAVE :: iflag_corr_sta175 !$OMP THREADPRIVATE(iflag_corr_sta)176 INTEGER, SAVE :: iflag_corr_insta177 !$OMP THREADPRIVATE(iflag_corr_insta)178 LOGICAL, SAVE :: ok_cdrag_iter179 !$OMP THREADPRIVATE(ok_cdrag_iter)180 211 181 212 !===================================================================c … … 249 280 !=============================================================================c 250 281 251 ! On choisit les fonctions de stabilite utilisees au premier appel252 !**************************************************************************253 IF (firstcall) THEN254 iflag_corr_sta=2255 iflag_corr_insta=2256 ok_cdrag_iter = .FALSE.257 258 CALL getin_p('iflag_corr_sta',iflag_corr_sta)259 CALL getin_p('iflag_corr_insta',iflag_corr_insta)260 CALL getin_p('ok_cdrag_iter',ok_cdrag_iter)261 262 firstcall = .FALSE.263 ENDIF264 265 282 !------------------ Rajout (OT2018) -------------------- 266 283 !--------- Rajout pour itération sur rugosité ---------------- … … 302 319 mixte = .true. 303 320 ENDIF 321 304 322 call clc_core_cp ( sqrt(zdu2),t1(i)-tsurf(i),q1(i)-qsurf(i),t1(i),q1(i),& 305 323 zgeop1(i)/RG, zgeop1(i)/RG, zgeop1(i)/RG,& … … 320 338 PSSS = 0.0 321 339 ENDIF 322 call ini_csts 323 call ecumev6_flux( z_0m,t1(i),tsurf(i),& 340 ! call ini_csts 341 !$gpum nocall 342 call ecumev6_flux( knon, 1, z_0m,t1(i),tsurf(i),& 324 343 q1(i),qsurf(i),sqrt(zdu2),zgeop1(i)/RG,PSSS,zgeop1(i)/RG,& 325 344 psol(i),pat1(i), OPRECIP, OPWEBB,& … … 339 358 LPRECIP = .false. 340 359 LPWG = .false. 341 call ini_csts360 !ym call ini_csts 342 361 343 362 z0m_1d = z0m … … 345 364 sqrt_zdu2_1d = sqrt(zdu2) 346 365 zgeop1_rg_1d=zgeop1(i)/RG 347 call coare30_flux_cnrm(z0m_1d,t1(i),tsurf(i), q1(i), & 366 367 !$gpum nocall 368 call coare30_flux_cnrm(1, z0m_1d,t1(i),tsurf(i), q1(i), & 348 369 sqrt_zdu2_1d,zgeop1_rg_1d,zgeop1_rg_1d,psol(i),qsurf(i),PQSAT, & 349 370 PSFTH,PFSTQ,PUSTAR,PCD,PCDN,PCH,PCE,PRI, & … … 362 383 ENDIF 363 384 write(*,*) "debug size",size(coeffs) 385 386 !$gpum nocall 364 387 call coare_cp(sqrt(zdu2),t1(i)-tsurf(i),q1(i)-qsurf(i),& 365 388 t1(i),q1(i),&
Note: See TracChangeset
for help on using the changeset viewer.
