Changeset 3956 for LMDZ6/trunk/libf
- Timestamp:
- Jul 6, 2021, 9:16:14 AM (4 years ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/dyn1d/old_lmdz1d.F90
r3890 r3956 13 13 ftsol, beta_aridity, pbl_tke, pctsrf, radsol, rain_fall, snow_fall, ratqs, & 14 14 rnebcon, rugoro, sig1, w01, solaire_etat0, sollw, sollwdown, & 15 solsw, t_ancien, q_ancien, u_ancien, v_ancien, wake_cstar, &15 solsw, solswfdiff, t_ancien, q_ancien, u_ancien, v_ancien, & 16 16 wake_delta_pbl_TKE, delta_tsurf, wake_fip, wake_pe, & 17 17 wake_deltaq, wake_deltat, wake_s, wake_dens, & 18 awake_dens, cv_gen, wake_cstar, & 18 19 zgam, zmax0, zmea, zpic, zsig, & 19 20 zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, ql_ancien, qs_ancien, & … … 880 881 snow_fall=0. 881 882 solsw=0. 883 solswfdiff=0. 882 884 sollw=0. 883 885 sollwdown=rsigma*tsurf**4 … … 895 897 sig1=0. 896 898 w01=0. 897 wake_cstar = 0. 899 ! 898 900 wake_deltaq = 0. 899 901 wake_deltat = 0. … … 904 906 wake_s = 0. 905 907 wake_dens = 0. 908 awake_dens = 0. 909 cv_gen = 0. 910 wake_cstar = 0. 906 911 ale_bl = 0. 907 912 ale_bl_trig = 0. … … 928 933 ! pctsrf(:,is_sic),ftsol(:,nsrf),tsoil(:,isoil,nsrf),qsurf(:,nsrf) 929 934 ! qsol,falb_dir(:,nsrf),falb_dif(:,nsrf),evap(:,nsrf),snow(:,nsrf) 930 ! radsol,solsw,sol lw, sollwdown,fder,rain_fall,snow_fall,frugs(:,nsrf)935 ! radsol,solsw,solswfdiff,sollw, sollwdown,fder,rain_fall,snow_fall,frugs(:,nsrf) 931 936 ! agesno(:,nsrf),zmea,zstd,zsig,zgam,zthe,zpic,zval,rugoro 932 937 ! t_ancien,q_ancien,,frugs(:,is_oce),clwcon(:,1),rnebcon(:,1),ratqs(:,1) 933 938 ! run_off_lic_0,pbl_tke(:,1:klev,nsrf), zmax0,f0,sig1,w01 934 ! wake_deltat,wake_deltaq,wake_s,wake_dens, wake_cstar,939 ! wake_deltat,wake_deltaq,wake_s,wake_dens,awake_dens,cv_gen,wake_cstar, 935 940 ! wake_fip,wake_delta_pbl_tke(:,1:klev,nsrf) 936 941 ! -
LMDZ6/trunk/libf/phylmd/dyn1d/scm.F90
r3888 r3956 9 9 ftsol, beta_aridity, pbl_tke, pctsrf, radsol, rain_fall, snow_fall, ratqs, & 10 10 rnebcon, rugoro, sig1, w01, solaire_etat0, sollw, sollwdown, & 11 solsw, t_ancien, q_ancien, u_ancien, v_ancien, wake_cstar, &11 solsw, solswfdiff, t_ancien, q_ancien, u_ancien, v_ancien, & 12 12 wake_delta_pbl_TKE, delta_tsurf, wake_fip, wake_pe, & 13 13 wake_deltaq, wake_deltat, wake_s, wake_dens, & 14 awake_dens, cv_gen, wake_cstar, & 14 15 zgam, zmax0, zmea, zpic, zsig, & 15 16 zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, ql_ancien, qs_ancien, & … … 645 646 snow_fall=0. 646 647 solsw=0. 648 solswfdiff=0. 647 649 sollw=0. 648 650 sollwdown=rsigma*tsurf**4 … … 660 662 sig1=0. 661 663 w01=0. 662 wake_cstar = 0. 664 ! 663 665 wake_deltaq = 0. 664 666 wake_deltat = 0. … … 669 671 wake_s = 0. 670 672 wake_dens = 0. 673 awake_dens = 0. 674 cv_gen = 0. 675 wake_cstar = 0. 671 676 ale_bl = 0. 672 677 ale_bl_trig = 0. … … 693 698 ! pctsrf(:,is_sic),ftsol(:,nsrf),tsoil(:,isoil,nsrf),qsurf(:,nsrf) 694 699 ! qsol,falb_dir(:,nsrf),falb_dif(:,nsrf),evap(:,nsrf),snow(:,nsrf) 695 ! radsol,solsw,sol lw, sollwdown,fder,rain_fall,snow_fall,frugs(:,nsrf)700 ! radsol,solsw,solswfdiff,sollw, sollwdown,fder,rain_fall,snow_fall,frugs(:,nsrf) 696 701 ! agesno(:,nsrf),zmea,zstd,zsig,zgam,zthe,zpic,zval,rugoro 697 702 ! t_ancien,q_ancien,,frugs(:,is_oce),clwcon(:,1),rnebcon(:,1),ratqs(:,1) 698 703 ! run_off_lic_0,pbl_tke(:,1:klev,nsrf), zmax0,f0,sig1,w01 699 ! wake_deltat,wake_deltaq,wake_s,wake_dens, wake_cstar,704 ! wake_deltat,wake_deltaq,wake_s,wake_dens,awake_dens,cv_gen,wake_cstar, 700 705 ! wake_fip,wake_delta_pbl_tke(:,1:klev,nsrf) 701 706 ! -
LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90
r3953 r3956 665 665 REAL, DIMENSION(klon, klev) :: zxfluxu_x, zxfluxv_x, zxfluxu_w, zxfluxv_w 666 666 REAL :: zx_qs_surf, zcor_surf, zdelta_surf 667 REAL, DIMENSION(klon) :: ytsurf_th, yqsatsurf668 667 !jyg< 669 668 REAL, DIMENSION(klon) :: ybeta … … 816 815 REAL, PARAMETER :: facteur=2./sqrt(3.14) 817 816 REAL, PARAMETER :: inertia=2000. 818 REAL, DIMENSION(klon) :: ytsurf_th_x,ytsurf_th_w,yqsatsurf_x,yqsatsurf_w819 817 REAL, DIMENSION(klon) :: ydtsurf_th 820 818 REAL :: zdelta_surf_x,zdelta_surf_w,zx_qs_surf_x,zx_qs_surf_w … … 890 888 !!jyg iflag_split = mod(iflag_pbl_split,2) 891 889 !!jyg iflag_split = mod(iflag_pbl_split,10) 890 ! 891 ! Flags controlling the splitting of the turbulent boundary layer: 892 ! iflag_split_ref = 0 ==> no splitting 893 ! = 1 ==> splitting without coupling with surface temperature 894 ! = 2 ==> splitting with coupling with surface temperature over land 895 ! = 3 ==> splitting over ocean; no splitting over land 896 ! iflag_split: actual flag controlling the splitting. 897 ! iflag_split = iflag_split_ref outside the sub-surface loop 898 ! = iflag_split_ref if iflag_split_ref = 0, 1, or 2 899 ! = 0 over land if iflga_split_ref = 3 900 ! = 1 over ocean if iflga_split_ref = 3 901 892 902 iflag_split_ref = mod(iflag_pbl_split,10) 903 iflag_split = iflag_split_ref 893 904 894 905 !**************************************************************************************** … … 2413 2424 print*,'Chx,Chw,Ch', ycdragh_x(j), ycdragh_w(j), ycdragh(j) 2414 2425 print*,'Khx,Khw,Kh', Kech_h_x(j), Kech_h_w(j), Kech_h(j) 2415 ! print*,'tsurf_x,tsurf_w,tsurf,t1', ytsurf_th_x(j), ytsurf_th_w(j), ytsurf_th(j), yt(j,1) 2416 print*,'tsurf_x,t1x,tsurf_w,t1w,tsurf,t1,t1_ancien', & 2417 & ytsurf_th_x(j), yt_x(j,1), ytsurf_th_w(j), yt_w(j,1), ytsurf_th(j), yt(j,1),t(j,1) 2418 print*,'qsatsurf,qsatsurf_x,qsatsurf_w', yqsatsurf(j), yqsatsurf_x(j), yqsatsurf_w(j) 2426 print*,'t1x, t1w, t1, t1_ancien', & 2427 & yt_x(j,1), yt_w(j,1), yt(j,1), t(j,1) 2419 2428 print*,'delta_coef,delta_flux,delta_tsurf,tau', delta_coef(j), y_delta_flux_t1(j), y_delta_tsurf(j), tau_eq(j) 2420 2429 ENDDO … … 2423 2432 print*,'fluxT_x, fluxT_w, y_flux_t1, fluxQ_x, fluxQ_w, yfluxlat, wakes' & 2424 2433 & , y_flux_t1_x(j), y_flux_t1_w(j), y_flux_t1(j), y_flux_q1_x(j)*RLVTT, y_flux_q1_w(j)*RLVTT, yfluxlat(j), ywake_s(j) 2425 print*,'beta, ytsurf_new,yqsatsurf', ybeta(j), ytsurf_new(j), yqsatsurf(j)2426 print*,'inertia, facteur,cstar', inertia, facteur,wake_cstar(j)2434 print*,'beta, ytsurf_new ', ybeta(j), ytsurf_new(j) 2435 print*,'inertia, facteur, cstar', inertia, facteur,wake_cstar(j) 2427 2436 ENDDO 2428 2437 ENDIF ! (prt_level >=10) -
LMDZ6/trunk/libf/phylmd/phyetat0.F90
r3933 r3956 17 17 solsw, solswfdiff, t_ancien, u_ancien, v_ancien, w01, wake_cstar, wake_deltaq, & 18 18 wake_deltat, wake_delta_pbl_TKE, delta_tsurf, beta_aridity, wake_fip, wake_pe, & 19 wake_s, wake_dens, zgam, zmax0, zmea, zpic, zsig, &19 wake_s, wake_dens, awake_dens, cv_gen, zgam, zmax0, zmea, zpic, zsig, & 20 20 zstd, zthe, zval, ale_bl, ale_bl_trig, alp_bl, u10m, v10m, treedrg, & 21 21 ale_wake, ale_bl_stat, ds_ns, dt_ns, delta_sst, delta_sal, ratqs_inter … … 419 419 !! found=phyetat0_get(1,wake_dens,"WAKE_DENS","Wake num. /unit area",0.) 420 420 found=phyetat0_get(1,wake_dens,"WAKE_DENS","Wake num. /unit area",-1000.) 421 found=phyetat0_get(1,awake_dens,"AWAKE_DENS","Active Wake num. /unit area",0.) 422 found=phyetat0_get(1,cv_gen,"CV_GEN","CB birth rate",0.) 421 423 !>jyg 422 424 found=phyetat0_get(1,wake_cstar,"WAKE_CSTAR","WAKE_CSTAR",0.) -
LMDZ6/trunk/libf/phylmd/phyredem.F90
r3933 r3956 23 23 wake_delta_pbl_tke, zmax0, f0, sig1, w01, & 24 24 wake_deltat, wake_deltaq, wake_s, wake_dens, & 25 awake_dens, cv_gen, & 25 26 wake_cstar, & 26 27 wake_pe, wake_fip, fm_therm, entr_therm, & … … 288 289 289 290 CALL put_field(pass,"WAKE_DENS", "Wake num. /unit area", wake_dens) 291 292 CALL put_field(pass,"AWAKE_DENS", "Active Wake num. /unit area", awake_dens) 293 294 CALL put_field(pass,"CV_GEN", "CB birth rate", cv_gen) 290 295 291 296 CALL put_field(pass,"WAKE_CSTAR", "WAKE_CSTAR", wake_cstar) -
LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90
r3888 r3956 390 390 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: proba_notrig, random_notrig 391 391 !$OMP THREADPRIVATE(proba_notrig, random_notrig) 392 REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cv_gen393 !$OMP THREADPRIVATE(cv_gen)394 392 REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fsolsw, wfbils, wfbilo 395 393 !$OMP THREADPRIVATE(fsolsw, wfbils, wfbilo) … … 765 763 alp_bl_stat(:)=0 766 764 ALLOCATE(proba_notrig(klon), random_notrig(klon)) 767 ALLOCATE(cv_gen(klon))768 765 769 766 ALLOCATE(dnwd0(klon, klev)) … … 1060 1057 DEALLOCATE(alp_bl_stat, n2, s2) 1061 1058 DEALLOCATE(proba_notrig, random_notrig) 1062 DEALLOCATE(cv_gen)1063 1059 1064 1060 DEALLOCATE(dnwd0) -
LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
r3950 r3956 239 239 wstar, cape, ema_pcb, ema_pct, & 240 240 ema_cbmf, Mipsh, Ma, fm_therm, ale_bl, alp_bl, ale, & 241 alp, cin, wake_pe, wake_dens, wake_s, wake_deltat, &241 alp, cin, wake_pe, wake_dens, cv_gen, wake_s, wake_deltat, & 242 242 wake_deltaq, ftd, fqd, ale_bl_trig, albsol1, & 243 243 ale_wake, ale_bl_stat, & … … 278 278 cdragh_x ,cdragh_w ,cdragm_x ,cdragm_w , & 279 279 kh ,kh_x ,kh_w , & 280 cv_gen,wake_h, &280 wake_h, & 281 281 wake_omg, d_t_wake, d_q_wake, Vprecip, qtaa, Clw, & 282 282 wdtrainA, wdtrainS, wdtrainM, n2, s2, proba_notrig, & -
LMDZ6/trunk/libf/phylmd/phys_state_var_mod.F90
r3888 r3956 249 249 ! awake_dens : number of active wakes per unit area 250 250 ! wake_dens : number of wakes per unit area 251 ! cv_gen : birth rate of cumulonimbus per unit area. 251 252 ! wake_occ : occurence of wakes (= 1 if wakes occur, =0 otherwise) 252 253 ! wake_Cstar : vitesse d'etalement de la poche … … 261 262 REAL,ALLOCATABLE,SAVE :: awake_dens(:), wake_dens(:) 262 263 !$OMP THREADPRIVATE(awake_dens, wake_dens) 264 REAL,ALLOCATABLE,SAVE :: cv_gen(:) 265 !$OMP THREADPRIVATE(cv_gen) 263 266 REAL,ALLOCATABLE,SAVE :: wake_Cstar(:) 264 267 !$OMP THREADPRIVATE(wake_Cstar) … … 490 493 print*, 'allocate falb' 491 494 ALLOCATE(falb_dir(klon,nsw,nbsrf),falb_dif(klon,nsw,nbsrf)) 492 print*, 'allocate falb good', falb_dir(1,1,1)495 !! print*, 'allocate falb good', falb_dir(1,1,1) 493 496 ALLOCATE(chl_con(klon)) 494 497 !albedo SB <<< … … 588 591 ALLOCATE(wake_deltat(klon,klev), wake_deltaq(klon,klev)) 589 592 ALLOCATE(wake_s(klon), awake_dens(klon), wake_dens(klon)) 590 awake_dens = 0. 593 !! awake_dens = 0. ! initialized in phyetat0 594 ALLOCATE(cv_gen(klon)) 591 595 ALLOCATE(wake_Cstar(klon)) 592 596 ALLOCATE(wake_pe(klon), wake_fip(klon)) … … 742 746 DEALLOCATE(wake_deltat, wake_deltaq) 743 747 DEALLOCATE(wake_s, awake_dens, wake_dens) 748 DEALLOCATE(cv_gen) 744 749 DEALLOCATE(wake_Cstar, wake_pe, wake_fip) 745 750 !jyg< -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r3908 r3956 245 245 alp_bl_stat, n2, s2, & 246 246 proba_notrig, random_notrig, & 247 cv_gen, & 247 !! cv_gen, & !moved to phys_state_var_mod 248 248 ! 249 249 dnwd0, & … … 1690 1690 1691 1691 CALL iniradia(klon,klev,paprs(1,1:klev+1)) 1692 1693 ! Initialisation des champs dans phytrac* qui sont utilisés par phys_output_write* 1692 ! 1693 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1694 ! Initialisation des champs dans phytrac* qui sont utilises par phys_output_write* 1695 ! 1696 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1697 1694 1698 #ifdef CPP_Dust 1695 1699 ! Quand on utilise SPLA, on force iflag_phytrac=1 … … 1780 1784 CALL abort_physic(modname,abort_message,1) 1781 1785 ENDIF 1786 1787 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1788 ! Initialisation pour la convection de K.E. et pour les poches froides 1789 ! 1790 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 1791 1782 1792 WRITE(lunout,*)"Clef pour la convection, iflag_con=", iflag_con 1783 1793 WRITE(lunout,*)"Clef pour le driver de la convection, ok_cvl=", & … … 1829 1839 d_s_wk(:) = 0. 1830 1840 d_dens_wk(:) = 0. 1831 ENDIF 1841 ENDIF ! (iflag_wake>=1) 1832 1842 1833 1843 ! do i = 1,klon … … 1840 1850 ! ALLOCATE(lonGCM(0), latGCM(0)) 1841 1851 ! ALLOCATE(iGCM(0), jGCM(0)) 1842 ENDIF 1843 1852 ENDIF ! (iflag_con.GE.3) 1853 ! 1844 1854 DO i=1,klon 1845 1855 rugoro(i) = f_rugoro * MAX(1.0e-05, zstd(i)*zsig(i)/2.0)
Note: See TracChangeset
for help on using the changeset viewer.