Changeset 5840 for LMDZ6/trunk
- Timestamp:
- Sep 25, 2025, 10:57:40 AM (3 months ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 6 edited
-
concvl.f90 (modified) (1 diff)
-
cv3_routines.f90 (modified) (32 diffs)
-
cv3a_compress.f90 (modified) (7 diffs)
-
cv3a_uncompress.f90 (modified) (6 diffs)
-
cv3p_mixing.f90 (modified) (9 diffs)
-
cva_driver.f90 (modified) (22 diffs)
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/concvl.f90
r5696 r5840 422 422 nloc = klon 423 423 CALL cva_driver_pre(klev, k_upper_cv, iflag_con, iflag_ice_thermo, ok_conserv_q, dtime ) 424 CALL cva_driver(klon, klev, klev+1, ntra, nloc, k_upper_cv, & 424 !! CALL cva_driver(klon, klev, klev+1, ntra, nloc, k_upper_cv, & !jyg: get rid of ntra 425 CALL cva_driver(klon, klev, klev+1, nloc, k_upper_cv, & 425 426 iflag_con, iflag_mix, iflag_ice_thermo, & 426 427 iflag_clos, ok_conserv_q, dtime, cvl_comp_threshold, & 427 t, q, qs, t_wake, q_wake, qs_wake, s_wake, u, v, tra, & 428 !! t, q, qs, t_wake, q_wake, qs_wake, s_wake, u, v, tra, & !jyg: get rid of ntra 429 t, q, qs, t_wake, q_wake, qs_wake, s_wake, u, v, & 428 430 em_p, em_ph, & 429 431 Ale, Alp, omega, & 430 432 em_sig1feed, em_sig2feed, em_wght, & 431 iflag, d_t, d_q, d_qcomp, d_u, d_v, d_tra, rain, kbas, ktop, & 432 cbmf, plcl, plfc, wbeff, sig1, w01, ptop2, sigd, & 433 !! iflag, d_t, d_q, d_qcomp, d_u, d_v, d_tra, rain, kbas, ktop, & !jyg: get rid of ntra 434 iflag, d_t, d_q, d_qcomp, d_u, d_v, rain, kbas, ktop, & 435 cbmf, plcl, plfc, wbeff, sig1, w01, ptop2, sigd, & 433 436 Ma, mip, Vprecip, Vprecipi, upwd, dnwd, dnwdbis, qcondc, wd, & 434 437 cape, cin, tvp, & -
LMDZ6/trunk/libf/phylmd/cv3_routines.f90
r5707 r5840 2313 2313 END SUBROUTINE cv3_closure 2314 2314 2315 SUBROUTINE cv3_mixing(nloc, ncum, nd, na, ntra, icb, nk, inb, & 2316 ph, t, rr, rs, u, v, tra, h, lv, lf, frac, qnk, & 2315 !!SUBROUTINE cv3_mixing(nloc, ncum, nd, na, ntra, icb, nk, inb, & !jyg: get rid of ntra 2316 SUBROUTINE cv3_mixing(nloc, ncum, nd, na, icb, nk, inb, & 2317 !! ph, t, rr, rs, u, v, tra, h, lv, lf, frac, qnk, & !jyg: get rid of ntra 2318 ph, t, rr, rs, u, v, h, lv, lf, frac, qnk, & 2317 2319 unk, vnk, hp, tv, tvp, ep, clw, m, sig, & 2318 ment, qent, uent, vent, nent, sij, elij, ments, qents, traent) 2320 !! ment, qent, uent, vent, nent, sij, elij, ments, qents, traent) !jyg: get rid of ntra 2321 ment, qent, uent, vent, nent, sij, elij, ments, qents) 2319 2322 USE cvflag_mod_h 2320 2323 USE lmdz_cv_ini, ONLY : cpd,cpv,minorig,nl,rrv,cpd,ginv,grav … … 2327 2330 2328 2331 !inputs: 2329 INTEGER, INTENT (IN) :: ncum, nd, na, ntra, nloc 2332 !! INTEGER, INTENT (IN) :: ncum, nd, na, ntra, nloc !jyg: get rid of ntra 2333 INTEGER, INTENT (IN) :: ncum, nd, na, nloc 2330 2334 INTEGER, DIMENSION (nloc), INTENT (IN) :: icb, inb, nk 2331 2335 REAL, DIMENSION (nloc, nd), INTENT (IN) :: sig … … 2334 2338 REAL, DIMENSION (nloc, nd), INTENT (IN) :: t, rr, rs 2335 2339 REAL, DIMENSION (nloc, nd), INTENT (IN) :: u, v 2336 REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) :: tra ! input of convect3 2340 !! REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) :: tra ! input of convect3 !jyg: get rid of ntra 2337 2341 REAL, DIMENSION (nloc, na), INTENT (IN) :: lv, h, hp 2338 2342 REAL, DIMENSION (nloc, na), INTENT (IN) :: lf, frac … … 2344 2348 REAL, DIMENSION (nloc, na, na), INTENT (OUT) :: uent, vent 2345 2349 REAL, DIMENSION (nloc, na, na), INTENT (OUT) :: sij, elij 2346 REAL, DIMENSION (nloc, nd, nd, ntra), INTENT (OUT) :: traent 2350 !! REAL, DIMENSION (nloc, nd, nd, ntra), INTENT (OUT) :: traent !jyg: get rid of ntra 2347 2351 REAL, DIMENSION (nloc, nd, nd), INTENT (OUT) :: ments, qents 2348 2352 INTEGER, DIMENSION (nloc, nd), INTENT (OUT) :: nent … … 2391 2395 ment(1:ncum, 1:nd, 1:nd) = 0.0 2392 2396 sij(1:ncum, 1:nd, 1:nd) = 0.0 2393 2394 !AC! do k=1,ntra2395 !AC! do j=1,nd ! instead nlp2396 !AC! do i=1,nd ! instead nlp2397 !AC! do il=1,ncum2398 !AC! traent(il,i,j,k)=tra(il,j,k)2399 !AC! enddo2400 !AC! enddo2401 !AC! enddo2402 !AC! enddo2403 2397 zm(:, :) = 0. 2404 2398 … … 2456 2450 uent(il, i, j) = sij(il, i, j)*u(il, i) + (1.-sij(il,i,j))*unk(il) 2457 2451 vent(il, i, j) = sij(il, i, j)*v(il, i) + (1.-sij(il,i,j))*vnk(il) 2458 !!!! do k=1,ntra2459 !!!! traent(il,i,j,k)=sij(il,i,j)*tra(il,i,k)2460 !!!! : +(1.-sij(il,i,j))*tra(il,nk(il),k)2461 !!!! end do2462 2452 elij(il, i, j) = altem 2463 2453 elij(il, i, j) = max(0.0, elij(il,i,j)) … … 2470 2460 END DO 2471 2461 END DO 2472 2473 !AC! do k=1,ntra2474 !AC! do j=minorig,nl2475 !AC! do il=1,ncum2476 !AC! if( (i.ge.icb(il)).and.(i.le.inb(il)).and.2477 !AC! : (j.ge.(icb(il)-1)).and.(j.le.inb(il)))then2478 !AC! traent(il,i,j,k)=sij(il,i,j)*tra(il,i,k)2479 !AC! : +(1.-sij(il,i,j))*tra(il,nk(il),k)2480 !AC! endif2481 !AC! enddo2482 !AC! enddo2483 !AC! enddo2484 2462 2485 2463 … … 2503 2481 END DO 2504 2482 END DO 2505 2506 !AC! do j=1,ntra2507 !AC! do i=minorig+1,nl2508 !AC! do il=1,ncum2509 !AC! if (i.ge.icb(il) .and. i.le.inb(il) .and. nent(il,i).eq.0) then2510 !AC! traent(il,i,i,j)=tra(il,nk(il),j)2511 !AC! endif2512 !AC! enddo2513 !AC! enddo2514 !AC! enddo2515 2483 2516 2484 DO j = minorig, nl … … 2686 2654 END IF 2687 2655 END DO ! il 2688 2689 !AC! do j=1,ntra2690 !AC! do il=1,ncum2691 !AC! if ( i.ge.icb(il) .and. i.le.inb(il) .and. lwork(il)2692 !AC! : .and. csum(il,i).lt.m(il,i) ) then2693 !AC! traent(il,i,i,j)=tra(il,nk(il),j)2694 !AC! endif2695 !AC! enddo2696 !AC! enddo2697 2656 789 END DO 2698 2657 … … 2730 2689 END SUBROUTINE cv3_mixing 2731 2690 2732 SUBROUTINE cv3_unsat(nloc, ncum, nd, na, ntra, icb, inb, iflag, & 2733 t, rr, rs, gz, u, v, tra, p, ph, & 2734 th, tv, lv, lf, cpn, ep, sigp, clw, frac_s, qpreca, frac_a, qta , & !!jygprl 2691 !!SUBROUTINE cv3_unsat(nloc, ncum, nd, na, ntra, icb, inb, iflag, & !jyg: get rid of ntra 2692 SUBROUTINE cv3_unsat(nloc, ncum, nd, na, icb, inb, iflag, & 2693 !! t, rr, rs, gz, u, v, tra, p, ph, & !jyg: get rid of ntra 2694 t, rr, rs, gz, u, v, p, ph, & 2695 th, tv, lv, lf, cpn, ep, sigp, clw, frac_s, qpreca, frac_a, qta , & !!jygprl 2735 2696 m, ment, elij, delt, plcl, coef_clos, & 2736 mp, rp, up, vp, trap, wt, water, evap, fondue, ice, & 2697 !! mp, rp, up, vp, trap, wt, water, evap, fondue, ice, & !jyg: get rid of ntra 2698 mp, rp, up, vp, wt, water, evap, fondue, ice, & 2737 2699 faci, b, sigd, & 2738 2700 wdtrainA, wdtrainS, wdtrainM) ! RomP … … 2744 2706 2745 2707 !inputs: 2746 INTEGER, INTENT (IN) :: ncum, nd, na, ntra, nloc 2708 !! INTEGER, INTENT (IN) :: ncum, nd, na, ntra, nloc !jyg: get rid of ntra 2709 INTEGER, INTENT (IN) :: ncum, nd, na, nloc 2747 2710 INTEGER, DIMENSION (nloc), INTENT (IN) :: icb, inb 2748 2711 REAL, INTENT(IN) :: delt … … 2751 2714 REAL, DIMENSION (nloc, na), INTENT (IN) :: gz 2752 2715 REAL, DIMENSION (nloc, nd), INTENT (IN) :: u, v 2753 REAL, DIMENSION (nloc, nd, ntra), INTENT(IN) ::tra2716 !! REAL, DIMENSION (nloc, nd, ntra), INTENT(IN) :: tra !jyg: get rid of ntra 2754 2717 REAL, DIMENSION (nloc, nd), INTENT (IN) :: p 2755 2718 REAL, DIMENSION (nloc, nd+1), INTENT (IN) :: ph … … 2773 2736 REAL, DIMENSION (nloc, na), INTENT (OUT) :: ice, fondue 2774 2737 REAL, DIMENSION (nloc, na), INTENT (OUT) :: faci ! ice fraction in precipitation 2775 REAL, DIMENSION (nloc, na, ntra), INTENT (OUT) :: trap 2738 !! REAL, DIMENSION (nloc, na, ntra), INTENT (OUT) :: trap !jyg: get rid of ntra 2776 2739 REAL, DIMENSION (nloc, na), INTENT (OUT) :: b 2777 2740 REAL, DIMENSION (nloc), INTENT (OUT) :: sigd … … 2859 2822 END DO 2860 2823 END DO 2861 2862 !AC! do k=1,ntra2863 !AC! do i=1,nd2864 !AC! do il=1,ncum2865 !AC! trap(il,i,k)=tra(il,i,k)2866 !AC! enddo2867 !AC! enddo2868 !AC! enddo2869 2824 2870 2825 ! *** check whether ep(inb)=0, if so, skip precipitating *** … … 3442 3397 ! *** find tracer concentrations in precipitating downdraft *** 3443 3398 3444 !AC! do j=1,ntra3445 !AC! do il = 1,ncum3446 !AC! if (i.lt.inb(il) .and. lwork(il)) then3447 !AC!c3448 !AC! if(mplus(il))then3449 !AC! trap(il,i,j)=trap(il,i+1,j)*mp(il,i+1)3450 !AC! : +trap(il,i,j)*(mp(il,i)-mp(il,i+1))3451 !AC! trap(il,i,j)=trap(il,i,j)/mp(il,i)3452 !AC! else ! if (mplus(il))3453 !AC! if(mp(il,i+1).gt.1.0e-16)then3454 !AC! trap(il,i,j)=trap(il,i+1,j)3455 !AC! endif3456 !AC! endif ! (mplus(il)) else if (.not.mplus(il))3457 !AC!c3458 !AC! endif ! (i.lt.inb(il) .and. lwork(il))3459 !AC! enddo3460 !AC! end do3461 3462 3399 400 END DO 3463 3400 ! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ … … 3471 3408 END SUBROUTINE cv3_unsat 3472 3409 3473 SUBROUTINE cv3_yield(nloc, ncum, nd, na, ntra, ok_conserv_q, & 3410 !!SUBROUTINE cv3_yield(nloc, ncum, nd, na, ntra, ok_conserv_q, & !jyg: get rid of ntra 3411 SUBROUTINE cv3_yield(nloc, ncum, nd, na, ok_conserv_q, & 3474 3412 icb, inb, delt, & 3475 t, rr, t_wake, rr_wake, s_wake, u, v, tra, & 3413 !! t, rr, t_wake, rr_wake, s_wake, u, v, tra, & !jyg: get rid of ntra 3414 t, rr, t_wake, rr_wake, s_wake, u, v, & 3476 3415 gz, p, ph, h, hp, lv, lf, cpn, th, th_wake, & 3477 ep, clw, qpreca, m, tp, mp, rp, up, vp, trap, & 3416 !! ep, clw, qpreca, m, tp, mp, rp, up, vp, trap, & !jyg: get rid of ntra 3417 ep, clw, qpreca, m, tp, mp, rp, up, vp, & 3478 3418 wt, water, ice, evap, fondue, faci, b, sigd, & 3479 3419 ment, qent, hent, iflag_mix, uent, vent, & 3480 nent, elij, traent, sig, & 3420 !! nent, elij, traent, sig, & !jyg: get rid of ntra 3421 nent, elij, sig, & 3481 3422 tv, tvp, wghti, & 3482 3423 iflag, precip, Vprecip, Vprecipi, & ! jyg: Vprecipi 3483 ft, fr, fr_comp, fu, fv, ftra, & ! jyg 3424 !! ft, fr, fr_comp, fu, fv, ftra, & ! jyg !jyg: get rid of ntra 3425 ft, fr, fr_comp, fu, fv, & ! jyg 3484 3426 cbmf, upwd, dnwd, dnwd0, ma, mip, & 3485 3427 !! tls, tps, ! useless . jyg … … 3499 3441 !inputs: 3500 3442 INTEGER, INTENT (IN) :: iflag_mix 3501 INTEGER, INTENT (IN) :: ncum, nd, na, ntra, nloc 3443 !! INTEGER, INTENT (IN) :: ncum, nd, na, ntra, nloc !jyg: get rid of ntra 3444 INTEGER, INTENT (IN) :: ncum, nd, na, nloc 3502 3445 LOGICAL, INTENT (IN) :: ok_conserv_q 3503 3446 INTEGER, DIMENSION (nloc), INTENT (IN) :: icb, inb … … 3506 3449 REAL, DIMENSION (nloc, nd), INTENT (IN) :: t_wake, rr_wake 3507 3450 REAL, DIMENSION (nloc), INTENT (IN) :: s_wake 3508 REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) ::tra3451 !! REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) :: tra !jyg: get rid of ntra 3509 3452 REAL, DIMENSION (nloc, nd), INTENT (IN) :: p 3510 3453 REAL, DIMENSION (nloc, nd+1), INTENT (IN) :: ph … … 3516 3459 REAL, DIMENSION (nloc, na), INTENT (IN) :: vp 3517 3460 REAL, DIMENSION (nloc, nd), INTENT (IN) :: wt 3518 REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) :: trap 3461 !! REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) :: trap !jyg: get rid of ntra 3519 3462 REAL, DIMENSION (nloc, na), INTENT (IN) :: water, evap, b 3520 3463 REAL, DIMENSION (nloc, na), INTENT (IN) :: fondue, faci, ice … … 3523 3466 REAL, DIMENSION (nloc, na, na), INTENT (IN) :: vent, elij 3524 3467 INTEGER, DIMENSION (nloc, nd), INTENT (IN) :: nent 3525 REAL, DIMENSION (nloc, na, na, ntra), INTENT (IN) :: traent 3468 !! REAL, DIMENSION (nloc, na, na, ntra), INTENT (IN) :: traent !jyg: get rid of ntra 3526 3469 REAL, DIMENSION (nloc, nd), INTENT (IN) :: tv, tvp, wghti 3527 3470 REAL, DIMENSION (nloc, nd), INTENT (IN) :: qta … … 3540 3483 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: ft, fr, fu, fv , fr_comp 3541 3484 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: ftd, fqd 3542 REAL, DIMENSION (nloc, nd, ntra), INTENT (OUT) :: ftra3485 !! REAL, DIMENSION (nloc, nd, ntra), INTENT (OUT) :: ftra !jyg: get rid of ntra 3543 3486 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: upwd, dnwd, ma 3544 3487 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: dnwd0, mip … … 3548 3491 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: qcondc ! cld 3549 3492 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: qtc, sigt ! cld 3550 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: detrain ! Louis : pour le calcul de Klein du terme de variance qui d étraine dans lenvironnement3493 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: detrain ! Louis : pour le calcul de Klein du terme de variance qui detraine dans lenvironnement 3551 3494 REAL, DIMENSION (nloc), INTENT (OUT) :: wd ! gust 3552 3495 REAL, DIMENSION (nloc), INTENT (OUT) :: cbmf … … 3623 3566 END DO 3624 3567 ! print*,'cv3_yield initialisation 2' 3625 !AC! do j=1,ntra3626 !AC! do i=1,nd3627 !AC! do il=1,ncum3628 !AC! ftra(il,i,j)=0.03629 !AC! enddo3630 !AC! enddo3631 !AC! enddo3632 3568 ! print*,'cv3_yield initialisation 3' 3633 3569 DO i = 1, nl … … 3830 3766 3831 3767 3832 !AC! do j=1,ntra3833 !AC! do il=1,ncum3834 !AC! if (iflag(il) .le. 1) then3835 !AC! if (cvflag_grav) then3836 !AC! ftra(il,1,j)=ftra(il,1,j)+0.01*grav*work(il)3837 !AC! : *(mp(il,2)*(trap(il,2,j)-tra(il,1,j))3838 !AC! : +am(il)*(tra(il,2,j)-tra(il,1,j)))3839 !AC! else3840 !AC! ftra(il,1,j)=ftra(il,1,j)+0.1*work(il)3841 !AC! : *(mp(il,2)*(trap(il,2,j)-tra(il,1,j))3842 !AC! : +am(il)*(tra(il,2,j)-tra(il,1,j)))3843 !AC! endif3844 !AC! endif ! iflag3845 !AC! enddo3846 !AC! enddo3847 3848 3768 DO j = 2, nl 3849 3769 DO il = 1, ncum … … 3857 3777 END DO 3858 3778 3859 !AC! do k=1,ntra3860 !AC! do j=2,nl3861 !AC! do il=1,ncum3862 !AC! if (j.le.inb(il) .and. iflag(il) .le. 1) then3863 !AC!3864 !AC! if (cvflag_grav) then3865 !AC! ftra(il,1,k)=ftra(il,1,k)+0.01*grav*work(il)*ment(il,j,1)3866 !AC! : *(traent(il,j,1,k)-tra(il,1,k))3867 !AC! else3868 !AC! ftra(il,1,k)=ftra(il,1,k)+0.1*work(il)*ment(il,j,1)3869 !AC! : *(traent(il,j,1,k)-tra(il,1,k))3870 !AC! endif3871 !AC!3872 !AC! endif3873 !AC! enddo3874 !AC! enddo3875 !AC! enddo3876 3779 ! print*,'cv3_yield apres ft' 3877 3780 … … 4221 4124 END DO 4222 4125 4223 !AC! do k=1,ntra4224 !AC! do il=1,ncum4225 !AC! if (i.le.inb(il) .and. iflag(il) .le. 1) then4226 !AC! dpinv=1.0/(ph(il,i)-ph(il,i+1))4227 !AC! cpinv=1.0/cpn(il,i)4228 !AC! if (cvflag_grav) then4229 !AC! ftra(il,i,k)=ftra(il,i,k)+0.01*grav*dpinv4230 !AC! : *(amp1(il)*(tra(il,i+1,k)-tra(il,i,k))4231 !AC! : -ad(il)*(tra(il,i,k)-tra(il,i-1,k)))4232 !AC! else4233 !AC! ftra(il,i,k)=ftra(il,i,k)+0.1*dpinv4234 !AC! : *(amp1(il)*(tra(il,i+1,k)-tra(il,i,k))4235 !AC! : -ad(il)*(tra(il,i,k)-tra(il,i-1,k)))4236 !AC! endif4237 !AC! endif4238 !AC! enddo4239 !AC! enddo4240 4241 4126 DO k = 1, i - 1 4242 4127 … … 4278 4163 END DO 4279 4164 4280 !AC! do j=1,ntra4281 !AC! do k=1,i-14282 !AC! do il=1,ncum4283 !AC! if (i.le.inb(il) .and. iflag(il) .le. 1) then4284 !AC! dpinv=1.0/(ph(il,i)-ph(il,i+1))4285 !AC! cpinv=1.0/cpn(il,i)4286 !AC! if (cvflag_grav) then4287 !AC! ftra(il,i,j)=ftra(il,i,j)+0.01*grav*dpinv*ment(il,k,i)4288 !AC! : *(traent(il,k,i,j)-tra(il,i,j))4289 !AC! else4290 !AC! ftra(il,i,j)=ftra(il,i,j)+0.1*dpinv*ment(il,k,i)4291 !AC! : *(traent(il,k,i,j)-tra(il,i,j))4292 !AC! endif4293 !AC! endif4294 !AC! enddo4295 !AC! enddo4296 !AC! enddo4297 4298 4165 !jyg< 4299 4166 !! DO k = i, nl + 1 … … 4325 4192 END DO 4326 4193 END DO 4327 4328 !AC! do j=1,ntra4329 !AC! do k=i,nl+14330 !AC! do il=1,ncum4331 !AC! if (i.le.inb(il) .and. k.le.inb(il)4332 !AC! $ .and. iflag(il) .le. 1) then4333 !AC! dpinv=1.0/(ph(il,i)-ph(il,i+1))4334 !AC! cpinv=1.0/cpn(il,i)4335 !AC! if (cvflag_grav) then4336 !AC! ftra(il,i,j)=ftra(il,i,j)+0.01*grav*dpinv*ment(il,k,i)4337 !AC! : *(traent(il,k,i,j)-tra(il,i,j))4338 !AC! else4339 !AC! ftra(il,i,j)=ftra(il,i,j)+0.1*dpinv*ment(il,k,i)4340 !AC! : *(traent(il,k,i,j)-tra(il,i,j))4341 !AC! endif4342 !AC! endif ! i and k4343 !AC! enddo4344 !AC! enddo4345 !AC! enddo4346 4194 4347 4195 ! sb: interface with the cloud parameterization: ! cld … … 4396 4244 END DO 4397 4245 4398 !AC! do j=1,ntra4399 !AC! do il=1,ncum4400 !AC! if (i.le.inb(il) .and. iflag(il) .le. 1) then4401 !AC! dpinv=1.0/(ph(il,i)-ph(il,i+1))4402 !AC! cpinv=1.0/cpn(il,i)4403 !AC!4404 !AC! if (cvflag_grav) then4405 !AC! ftra(il,i,j)=ftra(il,i,j)+0.01*grav*dpinv4406 !AC! : *(mp(il,i+1)*(trap(il,i+1,j)-tra(il,i,j))4407 !AC! : -mp(il,i)*(trap(il,i,j)-trap(il,i-1,j)))4408 !AC! else4409 !AC! ftra(il,i,j)=ftra(il,i,j)+0.1*dpinv4410 !AC! : *(mp(il,i+1)*(trap(il,i+1,j)-tra(il,i,j))4411 !AC! : -mp(il,i)*(trap(il,i,j)-trap(il,i-1,j)))4412 !AC! endif4413 !AC! endif ! i4414 !AC! enddo4415 !AC! enddo4416 4417 4246 4418 4247 500 END DO … … 4468 4297 !! PRINT *, 'cv3_yield, apres 503, sum(dq), precip, somme ', sumdq, Vprecip(1, 1), sumdq + vprecip(1, 1) 4469 4298 !!!JYG> 4470 4471 !AC! do j=1,ntra4472 !AC! do il=1,ncum4473 !AC! IF (iflag(il) .le. 1) THEN4474 !AC! IF (cvflag_grav) then4475 !AC! ex=0.01*grav*ment(il,inb(il),inb(il))4476 !AC! : *(traent(il,inb(il),inb(il),j)-tra(il,inb(il),j))4477 !AC! : /(ph(i l,inb(il))-ph(il,inb(il)+1))4478 !AC! ftra(il,inb(il),j)=ftra(il,inb(il),j)-ex4479 !AC! ftra(il,inb(il)-1,j)=ftra(il,inb(il)-1,j)4480 !AC! : +ex*(ph(il,inb(il))-ph(il,inb(il)+1))4481 !AC! : /(ph(il,inb(il)-1)-ph(il,inb(il)))4482 !AC! else4483 !AC! ex=0.1*ment(il,inb(il),inb(il))4484 !AC! : *(traent(il,inb(il),inb(il),j)-tra(il,inb(il),j))4485 !AC! : /(ph(i l,inb(il))-ph(il,inb(il)+1))4486 !AC! ftra(il,inb(il),j)=ftra(il,inb(il),j)-ex4487 !AC! ftra(il,inb(il)-1,j)=ftra(il,inb(il)-1,j)4488 !AC! : +ex*(ph(il,inb(il))-ph(il,inb(il)+1))4489 !AC! : /(ph(il,inb(il)-1)-ph(il,inb(il)))4490 !AC! ENDIF !cvflag grav4491 !AC! ENDIF !iflag4492 !AC! enddo4493 !AC! enddo4494 4299 4495 4300 … … 4655 4460 END DO 4656 4461 4657 !AC! DO j = 1,ntra4658 !AC! DO i = 1,nl4659 !AC! DO il = 1,ncum4660 !AC! IF (iflag(il) .le. 1) THEN4661 !AC! ftra(il,i,j) = ftra(il,i,j)/alpha_qpos(il)4662 !AC! ENDIF4663 !AC! ENDDO4664 !AC! ENDDO4665 !AC! ENDDO4666 4667 4462 4668 4463 ! *** reset counter and return *** … … 4943 4738 IF (k<=inb(il) .AND. i<=inb(il) .AND. iflag(il)<=1) THEN ! cld 4944 4739 sument(il) =sument(il) + abs(ment(il,k,i)) 4945 detrain(il,i) = detrain(il,i) + abs(ment(il,k,i))*(qdet(il,k,i) - rr(il,i))*(qdet(il,k,i) - rr(il,i)) ! Louis terme de d étrainement dans le bilan de variance4740 detrain(il,i) = detrain(il,i) + abs(ment(il,k,i))*(qdet(il,k,i) - rr(il,i))*(qdet(il,k,i) - rr(il,i)) ! Louis terme de detrainement dans le bilan de variance 4946 4741 ENDIF 4947 4742 ENDDO ! il 4948 4743 ENDDO ! k 4949 4744 4950 ! 14/01/15 AJ delta n'a rien � faire l�...4745 ! 14/01/15 AJ delta n'a rien a faire la... 4951 4746 DO il = 1, ncum ! cld 4952 4747 !! IF (wa(il,i)>0.0 .AND. iflag(il)<=1) & ! cld -
LMDZ6/trunk/libf/phylmd/cv3a_compress.f90
r5712 r5840 3 3 CONTAINS 4 4 5 SUBROUTINE cv3a_compress(len, nloc, ncum, nd, ntra, compress, & 5 !!SUBROUTINE cv3a_compress(len, nloc, ncum, nd, ntra, compress, & !jyg: get rid of ntra 6 SUBROUTINE cv3a_compress(len, nloc, ncum, nd, compress, & 6 7 iflag1, nk1, icb1, icbs1, & 7 8 plcl1, tnk1, qnk1, gznk1, hnk1, unk1, vnk1, & … … 9 10 t1, q1, qs1, t1_wake, q1_wake, qs1_wake, s1_wake, & 10 11 u1, v1, gz1, th1, th1_wake, & 11 tra1, & 12 !! tra1, & !jyg: get rid of ntra 12 13 h1, lv1, lf1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, & 13 14 h1_wake, lv1_wake, lf1_wake, cpn1_wake, tv1_wake, & … … 19 20 t, q, qs, t_wake, q_wake, qs_wake, s_wake, & 20 21 u, v, gz, th, th_wake, & 21 tra, & 22 !! tra, & !jyg: get rid of ntra 22 23 h, lv, lf, cpn, p, ph, tv, tp, tvp, clw, & 23 24 h_wake, lv_wake, lf_wake, cpn_wake, tv_wake, & … … 38 39 39 40 ! inputs: 40 INTEGER, INTENT (IN) :: len, nloc, nd, ntra 41 !! INTEGER, INTENT (IN) :: len, nloc, nd, ntra !jyg: get rid of ntra 42 INTEGER, INTENT (IN) :: len, nloc, nd 41 43 !jyg< 42 44 LOGICAL, INTENT (IN) :: compress ! compression is performed if compress is true … … 52 54 REAL, DIMENSION (len, nd), INTENT (IN) :: u1, v1 53 55 REAL, DIMENSION (len, nd), INTENT (IN) :: gz1, th1, th1_wake 54 REAL, DIMENSION (len, nd,ntra), INTENT (IN) :: tra1 56 !! REAL, DIMENSION (len, nd,ntra), INTENT (IN) :: tra1 !jyg: get rid of ntra 55 57 REAL, DIMENSION (len, nd), INTENT (IN) :: h1, lv1, lf1, cpn1 56 58 REAL, DIMENSION (len, nd), INTENT (IN) :: p1 … … 80 82 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: u, v 81 83 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: gz, th, th_wake 82 REAL, DIMENSION (nloc, nd,ntra), INTENT (OUT) ::tra84 !! REAL, DIMENSION (nloc, nd,ntra), INTENT (OUT) :: tra !jyg: get rid of ntra 83 85 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: h, lv, lf, cpn 84 86 REAL, DIMENSION (nloc, nd), INTENT (OUT) :: p … … 142 144 END DO 143 145 ! 144 ! AC! do 121 j=1,ntra145 ! AC!ccccc do 111 k=1,nl+1146 ! AC! do 111 k=1,nd147 ! AC! nn=0148 ! AC! do 101 i=1,len149 ! AC! if(iflag1(i).eq.0)then150 ! AC! nn=nn+1151 ! AC! tra(nn,k,j)=tra1(i,k,j)152 ! AC! endif153 ! AC! 101 continue154 ! AC! 111 continue155 ! AC! 121 continue156 146 157 147 IF (nn/=ncum) THEN -
LMDZ6/trunk/libf/phylmd/cv3a_uncompress.f90
r5712 r5840 7 7 CONTAINS 8 8 9 SUBROUTINE cv3a_uncompress(nloc, len, ncum, nd, ntra, idcum, is_convect, compress, & 9 !!SUBROUTINE cv3a_uncompress(nloc, len, ncum, nd, ntra, idcum, is_convect, compress, & !jyg: get rid of ntra 10 SUBROUTINE cv3a_uncompress(nloc, len, ncum, nd, idcum, is_convect, compress, & 10 11 iflag, kbas, ktop, & 11 12 precip, cbmf, plcl, plfc, wbeff, sig, w0, ptop2, & 12 ft, fq, fqcomp, fu, fv, ftra, & 13 !! ft, fq, fqcomp, fu, fv, ftra, & !jyg: get rid of ntra 14 ft, fq, fqcomp, fu, fv, & 13 15 sigd, ma, mip, vprecip, vprecipi, upwd, dnwd, dnwd0, & 14 16 qcondc, wd, cape, cin, & … … 25 27 iflag1, kbas1, ktop1, & 26 28 precip1, cbmf1, plcl1, plfc1, wbeff1, sig1, w01, ptop21, & 27 ft1, fq1, fqcomp1, fu1, fv1, ftra1, & 29 !! ft1, fq1, fqcomp1, fu1, fv1, ftra1, & !jyg: get rid of ntra 30 ft1, fq1, fqcomp1, fu1, fv1, & 28 31 sigd1, ma1, mip1, vprecip1, vprecipi1, upwd1, dnwd1, dnwd01, & 29 32 qcondc1, wd1, cape1, cin1, & … … 53 56 54 57 ! inputs: 55 INTEGER, INTENT (IN) :: nloc, len, ncum, nd, ntra 58 !! INTEGER, INTENT (IN) :: nloc, len, ncum, nd, ntra !jyg: get rid of ntra 59 INTEGER, INTENT (IN) :: nloc, len, ncum, nd 56 60 INTEGER, DIMENSION (nloc), INTENT (IN) :: idcum(nloc) 57 61 LOGICAL, DIMENSION (nloc), INTENT (IN) :: is_convect(nloc) … … 66 70 REAL, DIMENSION (nloc), INTENT (IN) :: epmax_diag 67 71 REAL, DIMENSION (nloc, nd), INTENT (IN) :: ft, fq, fqcomp, fu, fv 68 REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) :: ftra72 !! REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) :: ftra !jyg: get rid of ntra 69 73 REAL, DIMENSION (nloc), INTENT (IN) :: sigd 70 74 REAL, DIMENSION (nloc, nd), INTENT (IN) :: ma, mip … … 104 108 REAL, DIMENSION (len), INTENT (OUT) :: ptop21 105 109 REAL, DIMENSION (len, nd), INTENT (OUT) :: ft1, fq1, fqcomp1, fu1, fv1 106 REAL, DIMENSION (len, nd, ntra), INTENT (OUT) :: ftra1 110 !! REAL, DIMENSION (len, nd, ntra), INTENT (OUT) :: ftra1 !jyg: get rid of ntra 107 111 REAL, DIMENSION (len), INTENT (OUT) :: sigd1 108 112 REAL, DIMENSION (len, nd), INTENT (OUT) :: ma1, mip1 … … 218 222 END DO 219 223 220 ! AC! do 2100 j=1,ntra221 ! AC!c oct3 do 2110 k=1,nl222 ! AC! do 2110 k=1,nd ! oct3223 ! AC! do 2120 i=1,ncum224 ! AC! ftra1(idcum(i),k,j)=ftra(i,k,j)225 ! AC! 2120 continue226 ! AC! 2110 continue227 ! AC! 2100 continue228 229 ! AC!230 224 !jyg< 231 225 ! Essais pour gagner du temps en diminuant l'adressage indirect -
LMDZ6/trunk/libf/phylmd/cv3p_mixing.f90
r5703 r5840 8 8 END SUBROUTINE cv3p_mixing_pre 9 9 10 SUBROUTINE cv3p_mixing(nloc, ncum, nd, na, ntra, icb, nk, inb, & 11 ph, t, rr, rs, u, v, tra, h, lv, lf, frac, qta, & 10 !!SUBROUTINE cv3p_mixing(nloc, ncum, nd, na, ntra, icb, nk, inb, & !jyg: get rid of ntra 11 SUBROUTINE cv3p_mixing(nloc, ncum, nd, na, icb, nk, inb, & 12 !! ph, t, rr, rs, u, v, tra, h, lv, lf, frac, qta, & !jyg: get rid of ntra 13 ph, t, rr, rs, u, v, h, lv, lf, frac, qta, & 12 14 unk, vnk, hp, tv, tvp, ep, clw, sig, & 13 15 Ment, Qent, hent, uent, vent, nent, & 14 Sigij, elij, supmax, Ments, Qents, traent) 16 !! Sigij, elij, supmax, Ments, Qents, traent) !jyg: get rid of ntra 17 Sigij, elij, supmax, Ments, Qents) 15 18 ! ************************************************************** 16 19 ! * … … 33 36 34 37 !inputs: 35 INTEGER, INTENT (IN) :: ncum, nd, na 36 INTEGER, INTENT (IN) :: ntra, nloc 38 INTEGER, INTENT (IN) :: ncum, nd, na 39 !! INTEGER, INTENT (IN) :: ntra, nloc !jyg: get rid of ntra 40 INTEGER, INTENT (IN) :: nloc 37 41 INTEGER, DIMENSION (nloc), INTENT (IN) :: icb, inb, nk 38 42 REAL, DIMENSION (nloc, nd), INTENT (IN) :: sig … … 42 46 REAL, DIMENSION (nloc, nd), INTENT (IN) :: t, rr, rs 43 47 REAL, DIMENSION (nloc, nd), INTENT (IN) :: u, v 44 REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) :: tra ! input of convect3 48 !! REAL, DIMENSION (nloc, nd, ntra), INTENT (IN) :: tra ! input of convect3 !jyg: get rid of ntra 45 49 REAL, DIMENSION (nloc, na), INTENT (IN) :: lv 46 50 REAL, DIMENSION (nloc, na), INTENT (IN) :: lf … … 57 61 REAL, DIMENSION (nloc, na), INTENT (OUT) :: supmax ! Highest mixing fraction of mixed 58 62 ! updraughts with the sign of (h-hp) 59 REAL, DIMENSION (nloc, nd, nd, ntra), INTENT (OUT) :: traent 63 !! REAL, DIMENSION (nloc, nd, nd, ntra), INTENT (OUT) :: traent !jyg: get rid of ntra 60 64 REAL, DIMENSION (nloc, nd, nd), INTENT (OUT) :: Ments, Qents 61 65 REAL, DIMENSION (nloc, nd, nd), INTENT (OUT) :: hent … … 147 151 Sigij(1:ncum, 1:nd, 1:nd) = 0.0 148 152 !ym 149 150 !jyg! DO k = 1, ntra151 !jyg! DO j = 1, nd ! instead nlp152 !jyg! DO i = 1, nd ! instead nlp153 !jyg! DO il = 1, ncum154 !jyg! traent(il, i, j, k) = tra(il, j, k)155 !jyg! END DO156 !jyg! END DO157 !jyg! END DO158 !jyg! END DO159 153 160 154 ! ===================================================================== … … 264 258 END DO 265 259 END DO ! i = minorig + 1, nl 266 267 !jyg! DO j = 1, ntra268 !jyg! DO i = minorig + 1, nl269 !jyg! DO il = 1, ncum270 !jyg! IF (i>=icb(il) .AND. i<=inb(il) .AND. nent(il,i)==0) THEN271 !jyg! traent(il, i, i, j) = tra(il, nk(il), j)272 !jyg! END IF273 !jyg! END DO274 !jyg! END DO275 !jyg! END DO276 260 277 261 DO j = minorig, nl … … 577 561 END IF 578 562 END DO 579 !jyg! DO k = 1, ntra580 !jyg! DO il = 1, ncum581 !jyg! IF ((i>=icb(il)) .AND. (i<=inb(il)) .AND. &582 !jyg! (j>=(icb(il)-1)) .AND. (j<=inb(il)) .AND. &583 !jyg! lwork(il)) THEN584 !jyg! IF (Sij(il,i,j)>0.0) THEN585 !jyg! traent(il, i, j, k) = Sigij(il, i, j)*tra(il, i, k) + &586 !jyg! (1.-Sigij(il,i,j))*tra(il, nk(il), k)587 !jyg! END IF588 !jyg! END IF589 !jyg! END DO590 !jyg! END DO591 563 592 564 ! -- If I=J (detrainement and entrainement at the same level), then only the … … 612 584 END IF 613 585 END DO 614 !jyg! DO k = 1, ntra 615 !jyg! DO il = 1, ncum 616 !jyg! IF ((i>=icb(il)) .AND. (i<=inb(il)) .AND. & 617 !jyg! (j>=(icb(il)-1)) .AND. (j<=inb(il)) .AND. & 618 !jyg! lwork(il)) THEN 619 !jyg! IF (Sij(il,i,j)>0.0) THEN 620 !jyg! traent(il, i, i, k) = tra(il, nk(il), k) 621 !jyg! END IF 622 !jyg! END IF 623 !jyg! END DO 624 !jyg! END DO 625 626 END IF 586 END IF !(i==j) 627 587 628 588 ! --------------------------------------------------------------- … … 682 642 END DO ! il 683 643 684 !jyg! DO j = 1, ntra685 !jyg! DO il = 1, ncum686 !jyg! IF (i>=icb(il) .AND. i<=inb(il) .AND. lwork(il) .AND. csum(il,i)<1.) THEN687 !jyg!! cc : .and. csum(il,i).lt.m(il,i) ) then688 !jyg! traent(il, i, i, j) = tra(il, nk(il), j)689 !jyg! END IF690 !jyg! END DO691 !jyg! END DO692 693 644 ! --------------------------------------------------------------- 694 645 END DO !ym label 789 ! End loop on origin level "i" -
LMDZ6/trunk/libf/phylmd/cva_driver.f90
r5766 r5840 71 71 END SUBROUTINE cva_driver_post 72 72 73 SUBROUTINE cva_driver(len, nd, ndp1, ntra, nloc, k_upper, & 73 !!SUBROUTINE cva_driver(len, nd, ndp1, ntra, nloc, k_upper, & !jyg: get rid of ntra 74 SUBROUTINE cva_driver(len, nd, ndp1, nloc, k_upper, & 74 75 iflag_con, iflag_mix, iflag_ice_thermo, iflag_clos, ok_conserv_q, & 75 76 !! delt, t1, q1, qs1, t1_wake, q1_wake, qs1_wake, s1_wake, & ! jyg 76 77 delt, comp_threshold, & ! jyg 77 78 t1, q1, qs1, t1_wake, q1_wake, qs1_wake, s1_wake, & ! jyg 78 u1, v1, tra1, & 79 !! u1, v1, tra1, & !jyg: get rid of ntra 80 u1, v1, & 79 81 p1, ph1, & 80 82 Ale1, Alp1, omega1, & 81 83 sig1feed1, sig2feed1, wght1, & 82 iflag1, ft1, fq1, fqcomp1, fu1, fv1, ftra1, & 84 !! iflag1, ft1, fq1, fqcomp1, fu1, fv1, ftra1, & !jyg: get rid of ntra 85 iflag1, ft1, fq1, fqcomp1, fu1, fv1, & 83 86 precip1, kbas1, ktop1, & 84 87 cbmf1, plcl1, plfc1, wbeff1, & … … 126 129 127 130 128 ! All argument names (except len,nd,n tra,nloc,delt and the flags) have a "1" appended.131 ! All argument names (except len,nd,nloc,delt and the flags) have a "1" appended. 129 132 ! The "1" is removed for the corresponding compressed variables. 130 133 ! PARAMETERS: … … 135 138 ! nd Integer Input vertical (k) dimension 136 139 ! ndp1 Integer Input nd + 1 137 ! ntra Integer Input number of tracors138 140 ! nloc Integer Input dimension of arrays for compressed fields 139 141 ! k_upper Integer Input upmost level for vertical loops … … 157 159 ! u1 Real Input u-wind 158 160 ! v1 Real Input v-wind 159 ! tra1 Real Input tracors160 161 ! p1 Real Input full level pressure 161 162 ! ph1 Real Input half level pressure … … 171 172 ! fu1 Real Output u-wind tend 172 173 ! fv1 Real Output v-wind tend 173 ! ftra1 Real Output tracor tend174 174 ! precip1 Real Output precipitation 175 175 ! kbas1 Integer Output cloud base level … … 251 251 INTEGER, INTENT (IN) :: nd 252 252 INTEGER, INTENT (IN) :: ndp1 253 INTEGER, INTENT (IN) ::ntra253 !! INTEGER, INTENT (IN) :: ntra !jyg: get rid of ntra 254 254 INTEGER, INTENT(IN) :: nloc ! (nloc=len) pour l'instant 255 255 INTEGER, INTENT (IN) :: k_upper … … 272 272 REAL, DIMENSION (len, nd), INTENT (IN) :: u1 273 273 REAL, DIMENSION (len, nd), INTENT (IN) :: v1 274 REAL, DIMENSION (len, nd, ntra), INTENT (IN) :: tra1 274 !! REAL, DIMENSION (len, nd, ntra), INTENT (IN) :: tra1 !jyg: get rid of ntra 275 275 REAL, DIMENSION (len, nd), INTENT (IN) :: p1 276 276 REAL, DIMENSION (len, ndp1), INTENT (IN) :: ph1 … … 294 294 REAL, DIMENSION (len, nd), INTENT (OUT) :: fu1 295 295 REAL, DIMENSION (len, nd), INTENT (OUT) :: fv1 296 REAL, DIMENSION (len, nd, ntra), INTENT (OUT) :: ftra1 296 !! REAL, DIMENSION (len, nd, ntra), INTENT (OUT) :: ftra1 !jyg: get rid of ntra 297 297 REAL, DIMENSION (len), INTENT (OUT) :: precip1 298 298 INTEGER, DIMENSION (len), INTENT (OUT) :: kbas1 … … 398 398 ! v: Same as u but for meridional velocity. 399 399 400 ! tra: Array of passive tracer mixing ratio, of dimensions (ND,NTRA),401 ! where NTRA is the number of different tracers. If no402 ! convective tracer transport is needed, define a dummy403 ! input array of dimension (ND,1). Tracers are defined at404 ! same vertical levels as T. Note that this array will be altered405 ! if dry convective adjustment occurs and if IPBL is not equal to 0.406 407 400 ! p: Array of pressure (mb) of dimension ND, with first 408 401 ! index corresponding to lowest model level. Must be defined … … 460 453 461 454 ! fv: Same as FU, but for forcing of meridional velocity. 462 463 ! ftra: Array of forcing of tracer content, in tracer mixing ratio per464 ! second, defined at same levels as T. Dimensioned (ND,NTRA).465 455 466 456 ! precip: Scalar convective precipitation rate (mm/day). … … 596 586 REAL vprecip(nloc, nd+1) 597 587 REAL vprecipi(nloc, nd+1) 598 REAL tra(nloc, nd, ntra), trap(nloc, nd, ntra) 599 REAL ftra(nloc, nd, ntra), traent(nloc, nd, nd, ntra) 588 !! REAL tra(nloc, nd, ntra), trap(nloc, nd, ntra) !jyg: get rid of ntra 589 !! REAL ftra(nloc, nd, ntra), traent(nloc, nd, nd, ntra) !jyg: get rid of ntra 600 590 REAL qcondc(nloc, nd) ! cld 601 591 REAL wd(nloc) ! gust … … 641 631 nword1 = len 642 632 nword2 = len*nd 643 nword3 = len*nd*ntra633 !! nword3 = len*nd*ntra !jyg: get rid of ntra 644 634 nword4 = len*nd*nd 645 635 … … 651 641 fqcomp1(:, :) = 0.0 652 642 fu1(:, :) = 0.0 653 fv1(:, :) = 0.0 654 ftra1(:, :, :) = 0. 643 fv1(:, :) = 0.0 644 !! ftra1(:, :, :) = 0. !jyg: get rid of ntra 655 645 precip1(:) = 0. 656 646 cbmf1(:) = 0. … … 933 923 IF (iflag_con==3) THEN 934 924 if (prt_level >= 9) PRINT *, 'cva_driver -> cv3a_compress' 935 CALL cv3a_compress(len, nloc, ncum, nd, ntra, compress, & 925 !! CALL cv3a_compress(len, nloc, ncum, nd, ntra, compress, & !jyg: get rid of ntra 926 CALL cv3a_compress(len, nloc, ncum, nd, compress, & 936 927 iflag1, nk1, icb1, icbs1, & 937 928 plcl1, tnk1, qnk1, gznk1, hnk1, unk1, vnk1, & … … 939 930 t1, q1, qs1, t1_wake, q1_wake, qs1_wake, s1_wake, & 940 931 u1, v1, gz1, th1, th1_wake, & 941 tra1, & 932 !! tra1, & !jyg: get rid of ntra 942 933 h1, lv1, lf1, cpn1, p1, ph1, tv1, tp1, tvp1, clw1, & 943 934 h1_wake, lv1_wake, lf1_wake, cpn1_wake, tv1_wake, & … … 949 940 t, q, qs, t_wake, q_wake, qs_wake, s_wake, & 950 941 u, v, gz, th, th_wake, & 951 tra, & 942 !! tra, & !jyg: get rid of ntra 952 943 h, lv, lf, cpn, p, ph, tv, tp, tvp, clw, & 953 944 h_wake, lv_wake, lf_wake, cpn_wake, tv_wake, & … … 1022 1013 if (prt_level >= 9) & 1023 1014 PRINT *, 'cva_driver -> cv3p_mixing' 1024 CALL cv3p_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, & ! na->nd 1015 !! CALL cv3p_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, & ! na->nd !jyg: get rid of ntra 1016 CALL cv3p_mixing(nloc, ncum, nd, nd, icb, nk, inb, & ! na->nd 1025 1017 !! ph, t, q, qs, u, v, tra, h, lv, lf, frac, qnk, & 1026 ph, t, q, qs, u, v, tra, h, lv, lf, frac_s, qta, & !!jygprl 1018 !! ph, t, q, qs, u, v, tra, h, lv, lf, frac_s, qta, & !!jygprl !jyg: get rid of ntra 1019 ph, t, q, qs, u, v, h, lv, lf, frac_s, qta, & !!jygprl 1027 1020 unk, vnk, hp, tv, tvp, ep, clw, sig, & 1028 1021 ment, qent, hent, uent, vent, nent, & 1029 sigij, elij, supmax, ments, qents, traent) 1022 !! sigij, elij, supmax, ments, qents, traent) !jyg: get rid of ntra 1023 sigij, elij, supmax, ments, qents) 1030 1024 ! print*, 'cv3p_mixing-> supmax ', (supmax(1,k), k=1,nd) 1031 1025 … … 1104 1098 if (prt_level >= 9) & 1105 1099 PRINT *, 'cva_driver -> cv3_mixing' 1106 CALL cv3_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, & ! na->nd 1107 ph, t, q, qs, u, v, tra, h, lv, lf, frac_s, qnk, & 1100 !! CALL cv3_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, & ! na->nd !jyg: get rid of ntra 1101 CALL cv3_mixing(nloc, ncum, nd, nd, icb, nk, inb, & ! na->nd 1102 !! ph, t, q, qs, u, v, tra, h, lv, lf, frac_s, qnk, & !jyg: get rid of ntra 1103 ph, t, q, qs, u, v, h, lv, lf, frac_s, qnk, & 1108 1104 unk, vnk, hp, tv, tvp, ep, clw, m, sig, & 1109 ment, qent, uent, vent, nent, sigij, elij, ments, qents, traent) 1105 !! ment, qent, uent, vent, nent, sigij, elij, ments, qents, traent) !jyg: get rid of ntra 1106 ment, qent, uent, vent, nent, sigij, elij, ments, qents) 1110 1107 hent(1:nloc,1:nd,1:nd) = 0. 1111 1108 ELSE … … 1149 1146 if (prt_level >= 9) & 1150 1147 PRINT *, 'cva_driver -> cv3_unsat' 1151 CALL cv3_unsat(nloc, ncum, nd, nd, ntra, icb, inb, iflag, & ! na->nd 1152 t_wake, q_wake, qs_wake, gz, u, v, tra, p, ph, & 1148 !! CALL cv3_unsat(nloc, ncum, nd, nd, ntra, icb, inb, iflag, & ! na->nd !jyg: get rid of ntra 1149 CALL cv3_unsat(nloc, ncum, nd, nd, icb, inb, iflag, & ! na->nd 1150 !! t_wake, q_wake, qs_wake, gz, u, v, tra, p, ph, & !jyg: get rid of ntra 1151 t_wake, q_wake, qs_wake, gz, u, v, p, ph, & 1153 1152 th_wake, tv_wake, lv_wake, lf_wake, cpn_wake, & 1154 1153 ep, sigp, clw, frac_s, qpreca, frac_a, qta, & !!jygprl 1155 1154 m, ment, elij, delt, plcl, coef_clos_eff, & 1156 mp, qp, up, vp, trap, wt, water, evap, fondue, ice, & 1155 !! mp, qp, up, vp, trap, wt, water, evap, fondue, ice, & !jyg: get rid of ntra 1156 mp, qp, up, vp, wt, water, evap, fondue, ice, & 1157 1157 faci, b, sigd, & 1158 1158 !! wdtrainA, wdtrainM) ! RomP … … 1199 1199 if (prt_level >= 9) & 1200 1200 PRINT *, 'cva_driver -> cv3_yield' 1201 CALL cv3_yield(nloc, ncum, nd, nd, ntra, ok_conserv_q, & ! na->nd 1201 !! CALL cv3_yield(nloc, ncum, nd, nd, ntra, ok_conserv_q, & ! na->nd !jyg: get rid of ntra 1202 CALL cv3_yield(nloc, ncum, nd, nd, ok_conserv_q, & ! na->nd 1202 1203 icb, inb, delt, & 1203 t, q, t_wake, q_wake, s_wake, u, v, tra, & 1204 !! t, q, t_wake, q_wake, s_wake, u, v, tra, & !jyg: get rid of ntra 1205 t, q, t_wake, q_wake, s_wake, u, v, & 1204 1206 gz, p, ph, h, hp, lv, lf, cpn, th, th_wake, & 1205 ep, clw, qpreca, m, tp, mp, qp, up, vp, trap, & 1207 !! ep, clw, qpreca, m, tp, mp, qp, up, vp, trap, & !jyg: get rid of ntra 1208 ep, clw, qpreca, m, tp, mp, qp, up, vp, & 1206 1209 wt, water, ice, evap, fondue, faci, b, sigd, & 1207 1210 ment, qent, hent, iflag_mix, uent, vent, & 1208 nent, elij, traent, sig, & 1211 !! nent, elij, traent, sig, & !jyg: get rid of ntra 1212 nent, elij, sig, & 1209 1213 tv, tvp, wghti, & 1210 iflag, precip, Vprecip, Vprecipi, ft, fq, fqcomp, fu, fv, ftra, & ! jyg 1214 !! iflag, precip, Vprecip, Vprecipi, ft, fq, fqcomp, fu, fv, ftra, & !jyg: get rid of ntra 1215 iflag, precip, Vprecip, Vprecipi, ft, fq, fqcomp, fu, fv, & 1211 1216 cbmf, upwd, dnwd, dnwd0, ma, mip, & 1212 1217 !! tls, tps, & ! useless . jyg … … 1270 1275 if (prt_level >= 9) & 1271 1276 PRINT *, 'cva_driver -> cv3a_uncompress' 1272 CALL cv3a_uncompress(nloc, len, ncum, nd, ntra, idcum, is_convect, compress, & 1277 !! CALL cv3a_uncompress(nloc, len, ncum, nd, ntra, idcum, is_convect, compress, & !jyg: get rid of ntra 1278 CALL cv3a_uncompress(nloc, len, ncum, nd, idcum, is_convect, compress, & 1273 1279 iflag, icb, inb, & 1274 1280 precip, cbmf, plcl, plfc, wbeff, sig, w0, ptop2, & 1275 ft, fq, fqcomp, fu, fv, ftra, & 1281 !! ft, fq, fqcomp, fu, fv, ftra, & !jyg: get rid of ntra 1282 ft, fq, fqcomp, fu, fv, & 1276 1283 sigd, ma, mip, vprecip, vprecipi, upwd, dnwd, dnwd0, & 1277 1284 qcondc, wd, cape, cin, & … … 1287 1294 iflag1, kbas1, ktop1, & 1288 1295 precip1, cbmf1, plcl1, plfc1, wbeff1, sig1, w01, ptop21, & 1289 ft1, fq1, fqcomp1, fu1, fv1, ftra1, & 1296 !! ft1, fq1, fqcomp1, fu1, fv1, ftra1, & !jyg: get rid of ntra 1297 ft1, fq1, fqcomp1, fu1, fv1, & 1290 1298 sigd1, ma1, mip1, vprecip1, vprecipi1, upwd1, dnwd1, dnwd01, & 1291 1299 qcondc1, wd1, cape1, cin1, &
Note: See TracChangeset
for help on using the changeset viewer.
