Changeset 3763
- Timestamp:
- Jul 15, 2020, 10:14:36 PM (4 years ago)
- Location:
- LMDZ6/branches/Optimisation_LMDZ/libf/phylmd
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Optimisation_LMDZ/libf/phylmd/cv3_routines.F90
r3759 r3763 1101 1101 1102 1102 !JAM-------------------------------------------------------------------- 1103 ! Calcul de la quantit éd'eau sous forme de glace1103 ! Calcul de la quantit� d'eau sous forme de glace 1104 1104 ! -------------------------------------------------------------------- 1105 1105 INTEGER nl, len … … 3072 3072 !!---end jyg--- 3073 3073 3074 ! --------retour àla formulation originale d'Emanuel.3074 ! --------retour � la formulation originale d'Emanuel. 3075 3075 IF (cvflag_ice) THEN 3076 3076 … … 3082 3082 3083 3083 !JAM Attention: evap=sigt*E 3084 ! Modification: evap devient l' évaporation en milieu de couche3085 ! car n écessaire dans cv3_yield3086 ! Du coup, il faut modifier pas mal d' équations...3084 ! Modification: evap devient l'�vaporation en milieu de couche 3085 ! car n�cessaire dans cv3_yield 3086 ! Du coup, il faut modifier pas mal d'�quations... 3087 3087 ! et l'expression de afac qui devient afac1 3088 3088 ! revap=sqrt((prec(i+1)+prec(i))/2) … … 3103 3103 !JYG Dans sa formulation originale, Emanuel calcule l'evaporation par: 3104 3104 ! c evap(il,i)=sigt*afac*revap 3105 ! ce qui n'est pas correct. Dans cv_routines, la formulation a étémodifiee.3105 ! ce qui n'est pas correct. Dans cv_routines, la formulation a �t� modifiee. 3106 3106 ! Ici,l'evaporation evap est simplement calculee par l'equation de 3107 3107 ! conservation. … … 3550 3550 ! print*,'cv3_yield initialisation delt', delt 3551 3551 3552 DO il = 1, ncum 3553 precip(il) = 0.0 3554 wd(il) = 0.0 ! gust 3555 END DO 3552 precip(:) = 0 3553 wd(:) = 0 3554 ft(:,:) = 0 3555 fr(:,:) = 0 3556 fu(:,:) = 0 3557 fv(:,:) = 0 3558 ma(:,:) = 0 3559 mip(:,:) = 0 3560 upwd(:,:) = 0 3561 dnwd(:,:) = 0 3562 dnwd0(:,:) = 0 3563 qcondc(:,:) = 0 3564 ftd(:,:) = 0 3565 fqd(:,:) = 0 3566 qtc(:,:) = 0 3567 sigt(:,:) = 0 3556 3568 3557 3569 ! Fluxes are on a staggered grid : loops extend up to nl+1 … … 3560 3572 Vprecip(il, i) = 0.0 3561 3573 Vprecipi(il, i) = 0.0 ! jyg 3562 upwd(il, i) = 0.03563 dnwd(il, i) = 0.03564 dnwd0(il, i) = 0.03565 mip(il, i) = 0.03566 3574 END DO 3567 3575 END DO 3568 3576 DO i = 1, nl 3569 3577 DO il = 1, ncum 3570 ft(il, i) = 0.03571 fr(il, i) = 0.03572 fu(il, i) = 0.03573 fv(il, i) = 0.03574 ftd(il, i) = 0.03575 fqd(il, i) = 0.03576 qcondc(il, i) = 0.0 ! cld3577 3578 qcond(il, i) = 0.0 ! cld 3578 qtc(il, i) = 0.0 ! cld3579 3579 qtment(il, i) = 0.0 ! cld 3580 3580 sigment(il, i) = 0.0 ! cld 3581 sigt(il, i) = 0.0 ! cld3582 3581 nqcond(il, i) = 0.0 ! cld 3583 3582 END DO … … 4888 4887 ENDDO ! k 4889 4888 4890 ! 14/01/15 AJ delta n'a rien à faire là...4889 ! 14/01/15 AJ delta n'a rien � faire l�... 4891 4890 DO il = 1, ncum ! cld 4892 4891 !! IF (wa(il,i)>0.0 .AND. iflag(il)<=1) & ! cld … … 4904 4903 4905 4904 ! IM cf. FH 4906 ! 14/01/15 AJ ne correspond pas à ce qui a été codépar JYG et SB4905 ! 14/01/15 AJ ne correspond pas � ce qui a �t� cod� par JYG et SB 4907 4906 4908 4907 IF (iflag_clw==0) THEN ! cld … … 5101 5100 5102 5101 ! On fait varier epmax en fn de la cape 5103 ! Il faut donc recalculer ep, et hp qui a d éjà été calculéet5104 ! qui en d épend5105 ! Toutes les autres variables fn de ep sont calcul ées plus bas.5102 ! Il faut donc recalculer ep, et hp qui a d�j� �t� calcul� et 5103 ! qui en d�pend 5104 ! Toutes les autres variables fn de ep sont calcul�es plus bas. 5106 5105 5107 5106 include "cvthermo.h" … … 5138 5137 5139 5138 ! il faut calculer la cape: on fait un calcule simple car tant qu'on ne 5140 ! connait pas ep, on ne connait pas les m élanges, ddfts etc... qui sont5139 ! connait pas ep, on ne connait pas les m�langes, ddfts etc... qui sont 5141 5140 ! necessaires au calcul de la cape dans la nouvelle physique 5142 5141 -
LMDZ6/branches/Optimisation_LMDZ/libf/phylmd/cv3a_driver.f90
r3762 r3763 634 634 else !compress 635 635 nloc = len 636 ktop1 = 0637 precip1 = 0638 cbmf1 = 0639 plfc1 = 0640 wbeff1 = 0641 ptop21 = 0642 sigd1 = 0643 wd1 = 0644 cape1 = Cape_noconv645 cin1 = Cin_noconv646 Plim11 = 0647 plim21 = 0648 supmax01 = 0649 asupmaxmin1 = 0650 epmax_diag1 = 0651 ft1 = 0652 fq1 = 0653 fu1 = 0654 fv1 = 0655 ma1 = 0656 mip1 = 0657 upwd1 = 0658 dnwd1 = 0659 dnwd01 = 0660 qcondc1 = 0661 ftd1 = 0662 fqd1 = 0663 asupmax1 = 0664 da1 = 0665 mp1 = 0666 d1a1 = 0667 dam1 = 0668 qta1 = 0669 evap1 = 0670 ep1 = 0671 eplaMm1 = 0672 wdtrainA1 = 0673 wdtrainS1 = 0674 wdtrainM1 = 0675 qtc1 = 0676 sigt1 = 0677 vprecip1 = 0678 vprecipi1 = 0679 phi1 = 0680 phi21 = 0681 sigij1 = 0682 elij1 = 0683 epmlmMm1 = 0684 636 coef_convective(:) = merge(1, 0, iflag1(:) == 0) 685 637 call cv3a_driver_compressed(nloc, nd, ntra, & … … 810 762 811 763 call driver_log('cv3_undilute2') 764 qta(:,:) = 0 765 ep(:,:) = 0 812 766 CALL cv3_undilute2(nloc, ncum, nd, iflag, icb, icbs, nk, & 813 767 tnk, qnk, gznk, hnk, t, q, qs, gz, & 814 768 p, ph, h, tv, lv, lf, pbase, buoybase, plcl, & 815 769 inb, tp, tvp, clw, hp, ep, sigp, buoy, & 816 frac_a, frac_s, qpreca, qta) 817 770 frac_a, frac_s, qpreca, qta) 771 818 772 ! epmax_cape 819 773 ! on recalcule ep et hp 820 774 call driver_log('cv3_epmax_cape') 775 epmax_diag(:) = 0 821 776 call cv3_epmax_fn_cape(nloc, ncum, nd & 822 777 , ep, hp, icb, inb, clw, nk, t, h, hnk, lv, lf, frac_s & … … 828 783 ! ------------------------------------------------------------------- 829 784 call enter_profile("cv3p_mixing") 785 elij(:,:,:) = 0 786 supmax(:,:) = 0 830 787 IF (iflag_mix >= 1) THEN 831 CALL zilch(supmax, nloc*nd)832 788 call driver_log('cv3p_mixing') 833 789 CALL cv3p_mixing(nloc, ncum, nd, nd, ntra, icb, nk, inb, & … … 836 792 ment, qent, hent, uent, vent, nent, & 837 793 sigij, elij, supmax, ments, qents, traent) 838 ELSE839 CALL zilch(supmax, nloc*nd)840 794 END IF 841 795 call exit_profile("cv3p_mixing") … … 845 799 ! ------------------------------------------------------------------- 846 800 801 cape(:) = -1 802 cin(:) = -100000. 847 803 ptop2(:) = 0 848 804 coef_clos(:) = 1. 805 Plim1(:) = 0 806 plim2(:) = 0 807 supmax0(:) = 0 808 asupmaxmin(:) = 0 809 cbmf(:) = 0 810 plfc(:) = 0 811 wbeff(:) = 0 812 asupmax(:,:) = 0 813 814 ok_inhib = (iflag_mix == 2) 815 849 816 IF (iflag_clos == 0) THEN 850 817 call driver_log('cv3_closure') … … 852 819 pbase, p, ph, tv, buoy, & 853 820 sig, w0, cape, m, iflag) 854 END IF ! iflag_clos==0 855 856 ok_inhib = iflag_mix == 2 821 END IF ! iflag_clos==0 857 822 858 823 IF (iflag_clos == 1) PRINT *, ' pas d appel cv3p_closure' … … 958 923 ENDIF 959 924 925 926 960 927 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 961 928 !--- passive tracers … … 964 931 call driver_log('cv3_tracer') 965 932 call enter_profile("cv3_tracer") 933 934 sigij(:,:,:) = 0 935 vprecip(:,:) = 0 936 ! GLITCHY : vprecip is unused in cv3_tracer and sigij is intent in 966 937 CALL cv3_tracer(nloc, -1, ncum, nd, nd, & 967 938 ment, sigij, da, phi, phi2, d1a, dam, & 968 939 ep, vprecip, elij, clw, epmlmMm, eplaMm, & 969 940 icb, inb) 941 942 vprecipi = 0 970 943 call exit_profile("cv3_tracer") 971 944 END IF ! ncum>0
Note: See TracChangeset
for help on using the changeset viewer.