Changeset 2902 for LMDZ5/trunk/libf/phylmd
- Timestamp:
- Jun 2, 2017, 6:55:20 PM (8 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 2 added
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/cv3_routines.F90
r2901 r2902 280 280 281 281 SUBROUTINE cv3_feed(len, nd, ok_conserv_q, & 282 t, q, u, v, p, ph, h m, gz, &282 t, q, u, v, p, ph, h, gz, & 283 283 p1feed, p2feed, wght, & 284 284 wghti, tnk, thnk, qnk, qsnk, unk, vnk, & … … 286 286 287 287 USE mod_phys_lmdz_transfert_para, ONLY : bcast 288 USE add_phys_tend_mod, ONLY: fl_cor_ebil 288 289 IMPLICIT NONE 289 290 … … 295 296 ! - here, nk(i)=minorig 296 297 ! - icb defined differently (plcl compared with ph instead of p) 298 ! - dry static energy as argument instead of moist static energy 297 299 298 300 ! Main differences with convect3: … … 310 312 REAL, DIMENSION (len, nd), INTENT (IN) :: t, q, p 311 313 REAL, DIMENSION (len, nd), INTENT (IN) :: u, v 312 REAL, DIMENSION (len, nd), INTENT (IN) :: h m, gz314 REAL, DIMENSION (len, nd), INTENT (IN) :: h, gz 313 315 REAL, DIMENSION (len, nd+1), INTENT (IN) :: ph 314 316 REAL, DIMENSION (len), INTENT (IN) :: p1feed … … 381 383 pup(i) = p2feed(i) 382 384 END DO 383 CALL cv3_vertmix(len, nd, iflag, p1feed, pup, p, ph, & 384 t, q, u, v, wght, & 385 wghti, nk, tnk, thnk, qnk, qsnk, unk, vnk, plclup) 385 IF (fl_cor_ebil >=2 ) THEN 386 CALL cv3_estatmix(len, nd, iflag, p1feed, pup, p, ph, & 387 t, q, u, v, h, gz, wght, & 388 wghti, nk, tnk, thnk, qnk, qsnk, unk, vnk, plclup) 389 ELSE 390 CALL cv3_enthalpmix(len, nd, iflag, p1feed, pup, p, ph, & 391 t, q, u, v, wght, & 392 wghti, nk, tnk, thnk, qnk, qsnk, unk, vnk, plclup) 393 ENDIF ! (fl_cor_ebil >=2 ) 386 394 ! 1.b- LCL associated with ph(nk+1) 387 395 DO i = 1, len 388 396 plo(i) = ph(i, nk(i)+1) 389 397 END DO 390 CALL cv3_vertmix(len, nd, iflag, p1feed, plo, p, ph, & 391 t, q, u, v, wght, & 392 wghti, nk, tnk, thnk, qnk, qsnk, unk, vnk, plcllo) 398 IF (fl_cor_ebil >=2 ) THEN 399 CALL cv3_estatmix(len, nd, iflag, p1feed, plo, p, ph, & 400 t, q, u, v, h, gz, wght, & 401 wghti, nk, tnk, thnk, qnk, qsnk, unk, vnk, plcllo) 402 ELSE 403 CALL cv3_enthalpmix(len, nd, iflag, p1feed, plo, p, ph, & 404 t, q, u, v, wght, & 405 wghti, nk, tnk, thnk, qnk, qsnk, unk, vnk, plcllo) 406 ENDIF ! (fl_cor_ebil >=2 ) 393 407 ! 2- Iterations 394 408 niter = 5 … … 437 451 !jyg> 438 452 439 CALL cv3_vertmix(len, nd, iflag, p1feed, pfeed, p, ph, & 440 t, q, u, v, wght, & 441 wghti, nk, tnk, thnk, qnk, qsnk, unk, vnk, plclfeed) 453 IF (fl_cor_ebil >=2 ) THEN 454 CALL cv3_estatmix(len, nd, iflag, p1feed, pfeed, p, ph, & 455 t, q, u, v, h, gz, wght, & 456 wghti, nk, tnk, thnk, qnk, qsnk, unk, vnk, plclfeed) 457 ELSE 458 CALL cv3_enthalpmix(len, nd, iflag, p1feed, pfeed, p, ph, & 459 t, q, u, v, wght, & 460 wghti, nk, tnk, thnk, qnk, qsnk, unk, vnk, plclfeed) 461 ENDIF ! (fl_cor_ebil >=2 ) 442 462 !jyg20140217< 443 463 IF (ok_new_feed) THEN … … 1650 1670 DO i = 1, ncum 1651 1671 IF ((k>=icb(i)) .AND. (k<=inb(i))) THEN 1672 !jyg< (energy conservation tests) 1673 !! hp(i, k) = hnk(i) + (lv(i,k)+(cpd-cpv)*tp(i,k))*ep(i, k)*clw(i, k) 1674 !! hp(i, k) = ( hnk(i) + (lv(i,k)+(cpd-cpv)*t(i,k))*ep(i, k)*clw(i, k) ) / & 1675 !! (1. - ep(i,k)*clw(i,k)) 1676 !! hp(i, k) = ( hnk(i) + (lv(i,k)+(cpd-cl)*t(i,k))*ep(i, k)*clw(i, k) ) / & 1677 !! (1. - ep(i,k)*clw(i,k)) 1652 1678 hp(i, k) = hnk(i) + (lv(i,k)+(cpd-cpv)*t(i,k))*ep(i, k)*clw(i, k) 1653 1679 END IF … … 3543 3569 t(il,i)*(cpv-cpd)*(rr(il,i)-qent(il,i,i)))*cpinv 3544 3570 END IF 3545 3546 3547 3571 ! 3548 3572 ! sb: on ne fait pas encore la correction permettant de mieux 3549 3573 ! conserver l'eau: -
LMDZ5/trunk/libf/phylmd/cv3p_mixing.F90
r2900 r2902 254 254 uent(il, i, i) = unk(il) 255 255 vent(il, i, i) = vnk(il) 256 IF (fl_cor_ebil .GE. 2) THEN 257 hent(il, i, i) = hp(il,i) 258 ENDIF 256 259 elij(il, i, i) = clw(il, i)*(1.-ep(il,i)) 257 260 Sij(il, i, i) = 0.0 258 261 END IF 259 262 END DO 260 END DO 263 END DO ! i = minorig + 1, nl 261 264 262 265 !jyg! DO j = 1, ntra … … 663 666 vent(il, i, i) = vnk(il) 664 667 elij(il, i, i) = clw(il, i)*(1.-ep(il,i)) 665 Sij(il, i, i) = 0.0 668 IF (fl_cor_ebil .GE. 2) THEN 669 hent(il, i, i) = hp(il,i) 670 Sigij(il, i, i) = 0.0 671 ELSE 672 Sij(il, i, i) = 0.0 673 ENDIF 666 674 END IF 667 675 END DO ! il -
LMDZ5/trunk/libf/phylmd/cva_driver.F90
r2853 r2902 40 40 41 41 USE print_control_mod, ONLY: prt_level, lunout 42 USE add_phys_tend_mod, ONLY: fl_cor_ebil 42 43 IMPLICIT NONE 43 44 … … 730 731 PRINT *, 'cva_driver -> cv3_feed' 731 732 CALL cv3_feed(len, nd, ok_conserv_q, & ! nd->na 732 t1, q1, u1, v1, p1, ph1, h m1, gz1, &733 t1, q1, u1, v1, p1, ph1, h1, gz1, & 733 734 p1feed1, p2feed1, wght1, & 734 735 wghti1, tnk1, thnk1, qnk1, qsnk1, unk1, vnk1, & -
LMDZ5/trunk/libf/phylmd/physiq_mod.F90
r2897 r2902 245 245 246 246 USE cmp_seri_mod 247 USE add_phys_tend_mod, only : add_pbl_tend, add_phys_tend, prt_enerbil, &247 USE add_phys_tend_mod, only : add_pbl_tend, add_phys_tend, diag_phys_tend, prt_enerbil, & 248 248 & fl_ebil, fl_cor_ebil 249 249
Note: See TracChangeset
for help on using the changeset viewer.