Changeset 3605 for LMDZ6/branches/Ocean_skin/libf/phylmd/cva_driver.F90
- Timestamp:
- Nov 21, 2019, 4:43:45 PM (5 years ago)
- Location:
- LMDZ6/branches/Ocean_skin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Ocean_skin
-
LMDZ6/branches/Ocean_skin/libf/phylmd/cva_driver.F90
r3197 r3605 25 25 !! elij1,evap1,ep1,epmlmMm1,eplaMm1, & ! RomP 26 26 da1, phi1, mp1, phi21, d1a1, dam1, sigij1, wghti1, & ! RomP, RL 27 clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, &! RomP, RL28 wdtrainA1, wdtrain M1, qtc1, sigt1, tau_cld_cv, &27 qta1, clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, & ! RomP, RL 28 wdtrainA1, wdtrainS1, wdtrainM1, qtc1, sigt1, tau_cld_cv, & !!jygprl 29 29 coefw_cld_cv, & ! RomP, AJ 30 30 epmax_diag1) ! epmax_cape … … 124 124 ! of dimension ND, defined at same grid levels as T, Q, QS and P. 125 125 126 ! wdtrainA1 Real Output precipitation detrained from adiabatic draught; 126 ! wdtrainA1 Real Output precipitation ejected from adiabatic draught; 127 ! should be used in tracer transport (cvltr) 128 ! wdtrainS1 Real Output precipitation detrained from shedding of adiabatic draught; 127 129 ! used in tracer transport (cvltr) 128 130 ! wdtrainM1 Real Output precipitation detrained from mixed draughts; … … 248 250 249 251 ! RomP >>> 250 REAL, DIMENSION (len, nd), INTENT (OUT) :: wdtrainA1, wdtrain M1 ! precipitation sources (extensive)252 REAL, DIMENSION (len, nd), INTENT (OUT) :: wdtrainA1, wdtrainS1, wdtrainM1 ! precipitation sources (extensive) 251 253 REAL, DIMENSION (len, nd), INTENT (OUT) :: mp1 ! unsat. mass flux (staggered grid) 252 254 REAL, DIMENSION (len, nd), INTENT (OUT) :: da1 ! detrained mass flux of adiab. asc. air (extensive) … … 258 260 REAL, DIMENSION (len, nd, nd), INTENT (OUT) :: sigij1 ! mass fraction of env. air in mixed draughts (intensive) 259 261 REAL, DIMENSION (len, nd, nd), INTENT (OUT) :: elij1! cond. water per unit mass of mixed draughts (intensive) 262 REAL, DIMENSION (len, nd), INTENT (OUT) :: qta1 ! total water per unit mass of the adiab. asc. (intensive) 260 263 REAL, DIMENSION (len, nd), INTENT (OUT) :: clw1 ! cond. water per unit mass of the adiab. asc. (intensive) 261 264 !JYG,RL … … 467 470 REAL tv_wake(nloc, nd) 468 471 REAL clw(nloc, nd) 472 REAL, DIMENSION(nloc, nd) :: qta, qpreca !!jygprl 469 473 REAL dph(nloc, nd) 470 474 REAL pbase(nloc), buoybase(nloc), th(nloc, nd) … … 477 481 REAL cin(nloc) 478 482 REAL m(nloc, nd) 483 REAL mm(nloc, nd) 479 484 REAL ment(nloc, nd, nd), sigij(nloc, nd, nd) 480 485 REAL qent(nloc, nd, nd) … … 494 499 REAL, DIMENSION(len,nd) :: wt, water, evap 495 500 REAL, DIMENSION(len,nd) :: ice, fondue, b 496 REAL, DIMENSION(len,nd) :: frac , faci501 REAL, DIMENSION(len,nd) :: frac_a, frac_s, faci !!jygprl 497 502 REAL ft(nloc, nd), fq(nloc, nd) 498 503 REAL ftd(nloc, nd), fqd(nloc, nd) … … 523 528 524 529 ! RomP >>> 525 REAL wdtrainA(nloc, nd), wdtrain M(nloc, nd)530 REAL wdtrainA(nloc, nd), wdtrainS(nloc, nd), wdtrainM(nloc, nd) !!jygprl 526 531 REAL da(len, nd), phi(len, nd, nd) 527 532 REAL epmlmMm(nloc, nd, nd), eplaMm(nloc, nd) … … 613 618 asupmaxmin1(:) = 0. 614 619 620 tvp(:, :) = 0. !ym missing init, need to have a look by developpers 621 tv(:, :) = 0. !ym missing init, need to have a look by developpers 622 615 623 DO il = 1, len 616 624 cin1(il) = -100000. … … 633 641 qtc1(:, :) = 0. 634 642 wdtrainA1(:, :) = 0. 643 wdtrainS1(:, :) = 0. 635 644 wdtrainM1(:, :) = 0. 636 645 da1(:, :) = 0. … … 643 652 sigij1(:, :, :) = 0. 644 653 elij1(:, :, :) = 0. 654 qta1(:,:) = 0. 645 655 clw1(:,:) = 0. 646 656 wghti1(:,:) = 0. … … 903 913 p, ph, h, tv, lv, lf, pbase, buoybase, plcl, & 904 914 inb, tp, tvp, clw, hp, ep, sigp, buoy, & 905 frac )915 frac_a, frac_s, qpreca, qta) !!jygprl 906 916 END IF 907 917 … … 912 922 tnk, qnk, gznk, t, q, qs, gz, & 913 923 p, dph, h, tv, lv, & 914 inb, inbis, tp, tvp, clw, hp, ep, sigp, frac )924 inb, inbis, tp, tvp, clw, hp, ep, sigp, frac_s) 915 925 END IF 916 926 … … 920 930 PRINT *, 'cva_driver -> cv3_epmax_cape' 921 931 call cv3_epmax_fn_cape(nloc,ncum,nd & 922 , ep,hp,icb,inb,clw,nk,t,h,hnk,lv,lf,frac &932 , ep,hp,icb,inb,clw,nk,t,h,hnk,lv,lf,frac_s & 923 933 , pbase, p, ph, tv, buoy, sig, w0,iflag & 924 934 , epmax_diag) … … 938 948 PRINT *, 'cva_driver -> cv3p_mixing' 939 949 CALL cv3p_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, & ! na->nd 940 ph, t, q, qs, u, v, tra, h, lv, lf, frac, qnk, & 950 !! ph, t, q, qs, u, v, tra, h, lv, lf, frac, qnk, & 951 ph, t, q, qs, u, v, tra, h, lv, lf, frac_s, qta, & !!jygprl 941 952 unk, vnk, hp, tv, tvp, ep, clw, sig, & 942 953 ment, qent, hent, uent, vent, nent, & … … 1018 1029 PRINT *, 'cva_driver -> cv3_mixing' 1019 1030 CALL cv3_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, & ! na->nd 1020 ph, t, q, qs, u, v, tra, h, lv, lf, frac , qnk, &1031 ph, t, q, qs, u, v, tra, h, lv, lf, frac_s, qnk, & 1021 1032 unk, vnk, hp, tv, tvp, ep, clw, m, sig, & 1022 1033 ment, qent, uent, vent, nent, sigij, elij, ments, qents, traent) 1023 1034 CALL zilch(hent, nloc*nd*nd) 1024 1035 ELSE 1025 CALL cv3_mixscale(nloc, ncum, nd, ment, m) 1036 !!jyg: Essais absurde pour voir 1037 !! mm(:,1) = 0. 1038 !! DO i = 2,nd 1039 !! mm(:,i) = m(:,i)*(1.-qta(:,i-1)) 1040 !! ENDDO 1041 mm(:,:) = m(:,:) 1042 CALL cv3_mixscale(nloc, ncum, nd, ment, mm) 1026 1043 IF (debut) THEN 1027 1044 PRINT *, ' cv3_mixscale-> ' … … 1059 1076 t_wake, q_wake, qs_wake, gz, u, v, tra, p, ph, & 1060 1077 th_wake, tv_wake, lv_wake, lf_wake, cpn_wake, & 1061 ep, sigp, clw, &1078 ep, sigp, clw, frac_s, qpreca, frac_a, qta, & !!jygprl 1062 1079 m, ment, elij, delt, plcl, coef_clos, & 1063 1080 mp, qp, up, vp, trap, wt, water, evap, fondue, ice, & 1064 1081 faci, b, sigd, & 1065 wdtrainA, wdtrainM) ! RomP 1082 !! wdtrainA, wdtrainM) ! RomP 1083 wdtrainA, wdtrainS, wdtrainM) !!jygprl 1066 1084 ! 1067 1085 IF (prt_level >= 10) THEN … … 1072 1090 evap(igout,k), fondue(igout,k) 1073 1091 ENDDO 1074 Print *, 'cva_driver after cv3_unsat: wdtrainA, wdtrain M '1092 Print *, 'cva_driver after cv3_unsat: wdtrainA, wdtrainS, wdtrainM ' !!jygprl 1075 1093 DO k = 1,nd 1076 write (6, '(i4, 2(1x,e13.6))'), &1077 k, wdtrainA(igout,k), wdtrain M(igout,k)1094 write (6, '(i4,3(1x,e13.6))'), & 1095 k, wdtrainA(igout,k), wdtrainS(igout,k), wdtrainM(igout,k) !!jygprl 1078 1096 ENDDO 1079 1097 ENDIF … … 1109 1127 t, q, t_wake, q_wake, s_wake, u, v, tra, & 1110 1128 gz, p, ph, h, hp, lv, lf, cpn, th, th_wake, & 1111 ep, clw, m, tp, mp, qp, up, vp, trap, &1129 ep, clw, qpreca, m, tp, mp, qp, up, vp, trap, & 1112 1130 wt, water, ice, evap, fondue, faci, b, sigd, & 1113 1131 ment, qent, hent, iflag_mix, uent, vent, & … … 1118 1136 !! tls, tps, & ! useless . jyg 1119 1137 qcondc, wd, & 1120 ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv) 1138 !! ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv) 1139 ftd, fqd, qta, qtc, sigt, tau_cld_cv, coefw_cld_cv) !!jygprl 1140 ! 1141 ! Test conseravtion de l'eau 1121 1142 ! 1122 1143 IF (debut) THEN … … 1139 1160 t, q, u, v, & 1140 1161 gz, p, ph, h, hp, lv, cpn, & 1141 ep, clw, frac , m, mp, qp, up, vp, &1162 ep, clw, frac_s, m, mp, qp, up, vp, & 1142 1163 wt, water, evap, & 1143 1164 ment, qent, uent, vent, nent, elij, & … … 1184 1205 asupmaxmin, & 1185 1206 da, phi, mp, phi2, d1a, dam, sigij, & ! RomP 1186 clw, elij, evap, ep, epmlmMm, eplaMm, &! RomP1187 wdtrainA, wdtrain M, & ! RomP1207 qta, clw, elij, evap, ep, epmlmMm, eplaMm, & ! RomP 1208 wdtrainA, wdtrainS, wdtrainM, & ! RomP 1188 1209 qtc, sigt, epmax_diag, & ! epmax_cape 1189 1210 iflag1, kbas1, ktop1, & … … 1196 1217 Plim11, plim21, asupmax1, supmax01, & 1197 1218 asupmaxmin1, & 1198 da1, phi1, mp1, phi21, d1a1, dam1, sigij1, & ! RomP1199 clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, & ! RomP1200 wdtrainA1, wdtrain M1,& ! RomP1219 da1, phi1, mp1, phi21, d1a1, dam1, sigij1, & ! RomP 1220 qta1, clw1, elij1, evap1, ep1, epmlmMm1, eplaMm1, & ! RomP 1221 wdtrainA1, wdtrainS1, wdtrainM1, & ! RomP 1201 1222 qtc1, sigt1, epmax_diag1) ! epmax_cape 1202 1223 !
Note: See TracChangeset
for help on using the changeset viewer.