Changeset 4662
- Timestamp:
- Sep 1, 2023, 1:46:55 PM (15 months ago)
- Location:
- LMDZ6/branches/LMDZ_cdrag_LSCE/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/LMDZ_cdrag_LSCE/libf/phylmd/cdrag_mod.F90
r4661 r4662 122 122 REAL MU, CM, CH, B, CMstar, CHstar 123 123 REAL PM, PH, BPRIME 124 REAL C125 124 INTEGER ng_q1 ! Number of grids that q1 < 0.0 126 125 INTEGER ng_qsurf ! Number of grids that qsurf < 0.0 … … 129 128 REAL ztvd, zscf 130 129 REAL zucf, zcr 131 REAL friv, frih132 130 REAL, DIMENSION(klon) :: FM, FH ! stability functions 133 131 REAL, DIMENSION(klon) :: cdmn, cdhn ! Drag coefficient in neutral conditions … … 148 146 REAL, DIMENSION(klon) :: cdhh 149 147 150 !--------- rajout pour verification --------------------151 152 REAL, DIMENSION(klon) :: zcdn_h2153 154 155 148 !------------------RAJOUT POUR ECUME ------------------- 156 149 … … 215 208 216 209 ! Consistent with atke scheme 217 cn=(1./sqrt(cepsilon))**(2/3)218 ri0=2./rpi*(cinf - cn)*ric/cn219 ri1=-2./rpi * (pr_asym - pr_neut)/pr_slope210 cn=(1./sqrt(cepsilon))**(2./3.) 211 ri0=2./rpi*(cinf - cn)*ric/cn 212 ri1=-2./rpi * (pr_asym - pr_neut)/pr_slope 220 213 221 214 … … 304 297 ENDIF 305 298 call clc_core_cp ( sqrt(zdu2),t1(i)-tsurf(i),q1(i)-qsurf(i),t1(i),q1(i),& 306 307 308 299 zgeop1(i)/RG, zgeop1(i)/RG, zgeop1(i)/RG,& 300 psol(i),nit_bulk,mixte,& 301 coeffs,z_0m,z_0h) 309 302 cdmm(i) = coeffs(1) 310 303 cdhh(i) = coeffs(2) … … 313 306 write(*,*) "clc_core cd ch",cdmm(i),cdhh(i) 314 307 315 !------------------ Pour ECUME -------------------- 308 !------------------ Pour ECUME -------------------- 316 309 ELSE IF ((choix_bulk .eq. 4) .and. (nsrf .eq. is_oce)) THEN 317 310 OPRECIP = .false. … … 328 321 PCH,PCE,PRI,PRESA,prain,& 329 322 z_0h,OPERTFLUX,coeffs) 330 323 331 324 cdmm(i) = coeffs(1) 332 325 cdhh(i) = coeffs(2) 333 326 cdm(i)=cdmm(i) 334 cdh(i)=cdhh(i) 327 cdh(i)=cdhh(i) 335 328 336 329 write(*,*) "ecume cd ch",cdmm(i),cdhh(i) 337 330 338 331 !------------------ Pour COARE CNRM -------------------- 339 332 ELSE IF ((choix_bulk .eq. 5) .and. (nsrf .eq. is_oce)) THEN … … 356 349 pblh(i) = 1500. 357 350 ENDIF 358 351 write(*,*) "debug size",size(coeffs) 359 352 call coare_cp(sqrt(zdu2),t1(i)-tsurf(i),q1(i)-qsurf(i),& 360 361 362 363 364 353 t1(i),q1(i),& 354 zgeop1(i)/RG,zgeop1(i)/RG,zgeop1(i)/RG,& 355 psol(i), pblh(i),& 356 nit_bulk,& 357 coeffs,z_0m,z_0h) 365 358 cdmm(i) = coeffs(1) 366 359 cdhh(i) = coeffs(3) … … 375 368 ENDIF 376 369 ENDIF 370 377 371 378 372 !----------------------- Rajout des itérations -------------- … … 414 408 sm(i) = 2./rpi * (cinf - cn) * atan(-zri(i)/ri0) + cn 415 409 prandtl(i) = -2./rpi * (pr_asym - pr_neut) * atan(zri(i)/ri1) + pr_neut 416 FM(i) = MAX((sm(i)**(3 /2) * sqrt(cepsilon) * (1 - zri(i) / prandtl(i))**(1/2)),f_ri_cd_min)410 FM(i) = MAX((sm(i)**(3./2.) * sqrt(cepsilon) * (1 - zri(i) / prandtl(i))**(1./2.)),f_ri_cd_min) 417 411 FH(i) = MAX((FM(i) / prandtl(i)), f_ri_cd_min) 418 412 CASE default ! Louis 1982 … … 435 429 cdmm(i)=MIN(cdmm(i),cdmmax) 436 430 cdhh(i)=MIN(cdhh(i),cdhmax) 437 write(*,*) "LMDZ cd ch",cdmm(i),cdhh(i)431 ! write(*,*) "LMDZ cd ch",cdmm(i),cdhh(i) 438 432 END IF 439 433 ELSE … … 473 467 sm(i) = MAX(0.,cn*(1.-zri(i)/ric)) 474 468 prandtl(i) = pr_neut + zri(i) * pr_slope 475 FM(i) = MAX((sm(i)**(3 /2) * sqrt(cepsilon) * (1 - zri(i) / prandtl(i))**(1/2)),f_ri_cd_min)469 FM(i) = MAX((sm(i)**(3./2.) * sqrt(cepsilon) * (1 - zri(i) / prandtl(i))**(1./2.)),f_ri_cd_min) 476 470 FH(i) = MAX((FM(i) / prandtl(i)), f_ri_cd_min) 477 471 CASE default ! Louis 1982 … … 480 474 FH(i)= AMAX1(1./ (1.+3.*CB*zri(i)*zscf), f_ri_cd_min ) 481 475 END SELECT 476 482 477 ! Calcul des drags 478 483 479 cdmm(i)=cdmn(i)*FM(i) 484 480 cdhh(i)=f_cdrag_ter*cdhn(i)*FH(i) 481 IF (choix_bulk == 0) THEN 482 cdm(i)=cdmn(i)*FM(i) 483 cdh(i)=f_cdrag_ter*cdhn(i)*FH(i) 484 ENDIF 485 485 486 IF (nsrf.EQ.is_oce) THEN 486 487 cdhh(i)=f_cdrag_oce*cdhn(i)*FH(i) … … 554 555 sm(i) = 2./rpi * (cinf - cn) * atan(-zri(i)/ri0) + cn 555 556 prandtl(i) = -2./rpi * (pr_asym - pr_neut) * atan(zri(i)/ri1) + pr_neut 556 FM(i) = MAX((sm(i)**(3 /2) * sqrt(cepsilon) * (1 - zri(i) / prandtl(i))**(1/2)),f_ri_cd_min)557 FM(i) = MAX((sm(i)**(3./2.) * sqrt(cepsilon) * (1 - zri(i) / prandtl(i))**(1./2.)),f_ri_cd_min) 557 558 FH(i) = MAX((FM(i) / prandtl(i)), f_ri_cd_min) 558 559 CASE default ! Louis 1982 … … 600 601 sm(i) = MAX(0.,cn*(1.-zri(i)/ric)) 601 602 prandtl(i) = pr_neut + zri(i) * pr_slope 602 FM(i) = MAX((sm(i)**(3 /2) * sqrt(cepsilon) * (1 - zri(i) / prandtl(i))**(1/2)),f_ri_cd_min)603 FM(i) = MAX((sm(i)**(3./2.) * sqrt(cepsilon) * (1 - zri(i) / prandtl(i))**(1./2.)),f_ri_cd_min) 603 604 FH(i) = MAX((FM(i) / prandtl(i)), f_ri_cd_min) 604 605 CASE default ! Louis 1982 -
LMDZ6/branches/LMDZ_cdrag_LSCE/libf/phylmd/pbl_surface_mod.F90
r4661 r4662 1049 1049 !albedo SB <<< 1050 1050 yrain_f = 0.0 ; ysnow_f = 0.0 ; yfder = 0.0 ; ysolsw = 0.0 1051 ysollw = 0.0 ; yz0m = 0.0 ; yz0h = 0.0 ; y u1 = 0.01051 ysollw = 0.0 ; yz0m = 0.0 ; yz0h = 0.0 ; yz0h_oupas = 0.0 ; yu1 = 0.0 1052 1052 yv1 = 0.0 ; ypaprs = 0.0 ; ypplay = 0.0 1053 1053 ydelp = 0.0 ; yu = 0.0 ; yv = 0.0 ; yt = 0.0 … … 2988 2988 IF (iflag_split .eq.0) THEN 2989 2989 IF (iflag_new_t2mq2m==1) THEN 2990 CALL stdlevvarn(klon, knon, nsrf, zxli, &2990 CALL stdlevvarn(klon, knon, nsrf, zxli, & 2991 2991 uzon, vmer, tair1, qair1, zgeo1, & 2992 2992 tairsol, qairsol, yz0m, yz0h_oupas, psfce, patm, &
Note: See TracChangeset
for help on using the changeset viewer.