Changeset 1864 for LMDZ5/branches/testing/libf/phylmd/physiq.F
- Timestamp:
- Sep 11, 2013, 11:45:01 AM (11 years ago)
- Location:
- LMDZ5/branches/testing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/branches/testing
- Property svn:mergeinfo changed
/LMDZ5/trunk merged: 1797-1799,1801-1811,1813-1834,1836,1838-1840,1842-1860
- Property svn:mergeinfo changed
-
LMDZ5/branches/testing/libf/phylmd/physiq.F
r1795 r1864 29 29 USE phys_state_var_mod ! Variables sauvegardees de la physique 30 30 USE phys_output_var_mod ! Variables pour les ecritures des sorties 31 USE phys_output_write_mod 31 32 USE fonte_neige_mod, ONLY : fonte_neige_get_vars 32 33 USE phys_output_mod … … 44 45 use conf_phys_m, only: conf_phys 45 46 use radlwsw_m, only: radlwsw 47 use phyaqua_mod, only: zenang_an 46 48 USE control_mod 47 49 #ifdef REPROBUS … … 49 51 #endif 50 52 USE indice_sol_mod 53 USE phytrac_mod, ONLY : phytrac 51 54 52 55 !IM stations CFMIP … … 173 176 PARAMETER (ok_region=.FALSE.) 174 177 c====================================================================== 175 real weak_inversion(klon),dthmin(klon)176 178 real seuil_inversion 177 179 save seuil_inversion … … 184 186 REAL zz,znum,zden 185 187 REAL wmax_th(klon) 186 REAL zmax_th(klon)187 188 REAL tau_overturning_th(klon) 188 189 … … 220 221 REAL u(klon,klev) 221 222 REAL v(klon,klev) 222 REAL t(klon,klev),theta (klon,klev),thetal(klon,klev)223 REAL t(klon,klev),thetal(klon,klev) 223 224 c thetal: ligne suivante a decommenter si vous avez les fichiers MPL 20130625 224 225 c fth_fonctions.F90 et parkind1.F90 … … 227 228 REAL qx(klon,klev,nqtot) 228 229 REAL flxmass_w(klon,klev) 229 REAL omega(klon,klev) ! vitesse verticale en Pa/s230 230 REAL d_u(klon,klev) 231 231 REAL d_v(klon,klev) … … 242 242 real clw(klon,klev),elij(klon,klev,klev) 243 243 real epmlmMm(klon,klev,klev),eplaMm(klon,klev) 244 real wdtrainA(klon,klev),wdtrainM(klon,klev)245 244 ! RomP <<< 246 245 !IM definition dynamique o_trac dans phys_output_open … … 281 280 c 282 281 c 283 c prw: precipitable water284 real prw(klon)285 282 286 283 REAL convliq(klon,klev) ! eau liquide nuageuse convective … … 295 292 c flwp, fiwp = Liquid Water Path & Ice Water Path (kg/m2) 296 293 c flwc, fiwc = Liquid Water Content & Ice Water Content (kg/kg) 297 REAL flwp(klon), fiwp(klon)298 REAL flwc(klon,klev), fiwc(klon,klev)299 294 REAL flwp_c(klon), fiwp_c(klon) 300 295 REAL flwc_c(klon,klev), fiwc_c(klon,klev) … … 302 297 REAL flwc_s(klon,klev), fiwc_s(klon,klev) 303 298 304 REAL evap_pot(klon,nbsrf)305 299 306 300 cIM ISCCP simulator v3.4 … … 528 522 c$OMP THREADPRIVATE(itap) 529 523 c 530 real slp(klon) ! sea level pressure531 c532 REAL fevap(klon,nbsrf)533 REAL fluxlat(klon,nbsrf)534 c535 REAL qsol(klon)536 524 REAL,save :: solarlong0 537 525 c$OMP THREADPRIVATE(solarlong0) … … 544 532 c 545 533 INTEGER igwd,idx(klon),itest(klon) 546 c547 REAL agesno(klon,nbsrf)548 534 c 549 535 c REAL,allocatable,save :: run_off_lic_0(:) … … 565 551 566 552 REAL mip(klon,klev) ! mass flux shed by the adiab ascent at each level 567 REAL Vprecip(klon,klev+1) ! precipitation vertical profile568 553 c 569 554 REAL wape_prescr, fip_prescr … … 589 574 c$OMP THREADPRIVATE(wake_s_min_lsp) 590 575 591 real ale_wake(klon)592 real alp_wake(klon)593 576 594 577 real ok_wk_lsp(klon) … … 609 592 REAL wake_dtPBL(klon,klev) ! Wake : differential heating (wake - unpertubed) PBL 610 593 REAL wake_dqPBL(klon,klev) ! Wake : differential moistening (wake - unpertubed) PBL 611 REAL wake_omg(klon,klev) ! Wake : velocity difference (wake - unpertubed)612 594 REAL wake_ddeltat(klon,klev),wake_ddeltaq(klon,klev) 613 595 REAL wake_dp_deltomg(klon,klev) ! Wake : gradient vertical de wake_omg … … 615 597 c 616 598 cpourquoi y'a pas de save?? 617 REAL wake_h(klon) ! Wake : hauteur de la poche froide618 599 c 619 600 INTEGER wake_k(klon) ! Wake sommet … … 645 626 cRR:fin declarations poches froides 646 627 c======================================================================================================= 647 648 REAL zw2(klon,klev+1) 649 REAL fraca(klon,klev+1) 628 650 629 REAL ztv(klon,klev),ztva(klon,klev) 651 630 REAL zpspsk(klon,klev) … … 665 644 real env_tke_max0(klon) ! TKE dans l'environnement au LCL 666 645 667 c---Spectre de thermiques de type 2 au LCL668 real n2(klon),s2(klon)669 real ale_bl_stat(klon)670 671 646 c---D\'eclenchement stochastique 672 647 integer :: tau_trig(klon) 673 real proba_notrig(klon)674 real random_notrig(klon)675 648 676 649 c--------Statistical Boundary Layer Closure: ALP_BL-------- … … 680 653 real env_tke_max(klon,klev) ! Profil de TKE dans l'environnement 681 654 682 c---Fermeture statistique683 real alp_bl_det(klon) ! ALP d\'terministe du thermique unique684 real alp_bl_fluct_m(klon) ! ALP li\'ee aux fluctuations de flux de masse sous-nuageux685 real alp_bl_fluct_tke(klon) ! ALP li\'ee aux fluctuations d'\'energie cin\'etique sous-nuageuse686 real alp_bl_conv(klon) ! ALP li\'ee \`a grande \'echelle687 real alp_bl_stat(klon) ! ALP totale688 655 689 656 ccc fin nrlmd le 10/04/2012 … … 697 664 c Variables locales: 698 665 c 699 REAL cdragh(klon) ! drag coefficient pour T and Q700 REAL cdragm(klon) ! drag coefficient pour vent701 666 cAA 702 667 cAA Pour phytrac 703 668 REAL u1(klon) ! vents dans la premiere couche U 704 669 REAL v1(klon) ! vents dans la premiere couche V 705 706 REAL zxffonte(klon), zxfqcalving(klon),zxfqfonte(klon)707 670 708 671 c@$$ LOGICAL offline ! Controle du stockage ds "physique" … … 713 676 ! RomP >>> 714 677 REAL beta_prec_fisrt(klon,klev) ! taux de conv de l'eau cond (fisrt) 715 REAL beta_prec(klon,klev) ! taux de conv de l'eau cond (utilise)716 678 ! RomP <<< 717 679 INTEGER :: iii … … 722 684 c 723 685 cIM 050204 END 724 REAL evap(klon), devap(klon) ! evaporation et sa derivee 725 REAL sens(klon), dsens(klon) ! chaleur sensible et sa derivee 726 727 REAL bils(klon) ! bilan de chaleur au sol 728 729 REAL wfbilo(klon,nbsrf) ! bilan d'eau, pour chaque 730 C ! type de sous-surface et pondere par la fraction 731 REAL wfbils(klon,nbsrf) ! bilan de chaleur au sol, pour chaque 732 C ! type de sous-surface et pondere par la fraction 733 REAL slab_wfbils(klon) ! bilan de chaleur au sol pour le cas de slab, sur les points d'ocean 734 735 REAL fder(klon) 736 REAL ve(klon) ! integr. verticale du transport meri. de l'energie 737 REAL vq(klon) ! integr. verticale du transport meri. de l'eau 738 REAL ue(klon) ! integr. verticale du transport zonal de l'energie 739 REAL uq(klon) ! integr. verticale du transport zonal de l'eau 740 c 741 REAL frugs(klon,nbsrf) 742 REAL zxrugs(klon) ! longueur de rugosite 686 REAL devap(klon) ! evaporation et sa derivee 687 REAL dsens(klon) ! chaleur sensible et sa derivee 688 743 689 c 744 690 c Conditions aux limites … … 804 750 REAL diafra(klon,klev) ! fraction nuageuse 805 751 REAL cldliq(klon,klev) ! eau liquide nuageuse 806 REAL cldfra(klon,klev) ! fraction nuageuse807 REAL cldtau(klon,klev) ! epaisseur optique808 REAL cldemi(klon,klev) ! emissivite infrarouge809 752 c 810 753 CXXX PB 811 754 REAL fluxq(klon,klev, nbsrf) ! flux turbulent d'humidite 812 REAL fluxt(klon,klev, nbsrf) ! flux turbulent de chaleur813 REAL fluxu(klon,klev, nbsrf) ! flux turbulent de vitesse u814 REAL fluxv(klon,klev, nbsrf) ! flux turbulent de vitesse v815 755 c 816 756 REAL zxfluxt(klon, klev) … … 818 758 REAL zxfluxu(klon, klev) 819 759 REAL zxfluxv(klon, klev) 820 CXXX 821 c 822 REAL fsollw(klon, nbsrf) ! bilan flux IR pour chaque sous surface 823 REAL fsolsw(klon, nbsrf) ! flux solaire absorb. pour chaque sous surface 760 824 761 c Le rayonnement n'est pas calcule tous les pas, il faut donc 825 762 c sauvegarder les sorties du rayonnement … … 834 771 REAL conv_q(klon,klev) ! convergence de l'humidite (kg/kg/s) 835 772 REAL conv_t(klon,klev) ! convergence de la temperature(K/s) 836 c 837 REAL cldl(klon),cldm(klon),cldh(klon) !nuages bas, moyen et haut 838 REAL cldt(klon),cldq(klon) !nuage total, eau liquide integree 839 c 840 REAL zxtsol(klon), zxqsurf(klon), zxsnow(klon), zxfluxlat(klon) 773 774 c 775 REAL zxsnow(klon) 841 776 REAL zxsnow_dummy(klon) 842 777 c … … 857 792 REAL t_coup 858 793 PARAMETER (t_coup=234.0) 859 c 860 REAL zphi(klon,klev) 794 861 795 cym A voir plus tard !! 862 796 cym REAL zx_relief(iim,jjmp1) … … 864 798 c 865 799 c Grandeurs de sorties 866 REAL s_ pblh(klon), s_lcl(klon), s_capCL(klon)867 REAL s_oliqCL(klon), s_cteiCL(klon) , s_pblt(klon)868 REAL s_t herm(klon), s_trmb1(klon), s_trmb2(klon)800 REAL s_capCL(klon) 801 REAL s_oliqCL(klon), s_cteiCL(klon) 802 REAL s_trmb1(klon), s_trmb2(klon) 869 803 REAL s_trmb3(klon) 870 804 cKE43 871 805 c Variables locales pour la convection de K. Emanuel (sb): 872 c 873 REAL upwd(klon,klev) ! saturated updraft mass flux 874 REAL dnwd(klon,klev) ! saturated downdraft mass flux 875 REAL dnwd0(klon,klev) ! unsaturated downdraft mass flux 806 876 807 REAL tvp(klon,klev) ! virtual temp of lifted parcel 877 REAL plcl(klon) ! Lifting Condensation Level878 REAL plfc(klon) ! Level of Free Convection879 REAL wbeff(klon) ! saturated updraft velocity at LFC880 808 CHARACTER*40 capemaxcels !max(CAPE) 881 809 … … 902 830 c eva: evaporation de l'eau liquide nuageuse 903 831 c vdf: couche limite (Vertical DiFfusion) 904 REAL rneb(klon,klev)905 832 906 833 ! tendance nulles … … 914 841 cIM 081204 END 915 842 c 916 REAL pmfu(klon,klev), pmfd(klon,klev)917 843 REAL pen_u(klon,klev), pen_d(klon,klev) 918 844 REAL pde_u(klon,klev), pde_d(klon,klev) 919 845 INTEGER kcbot(klon), kctop(klon), kdtop(klon) 920 REAL pmflxr(klon,klev+1), pmflxs(klon,klev+1)921 REAL prfl(klon,klev+1), psfl(klon,klev+1)922 c923 REAL rain_lsc(klon)924 REAL snow_lsc(klon)925 846 c 926 847 REAL ratqsc(klon,klev) … … 935 856 logical ok_newmicro 936 857 save ok_newmicro 937 real ref_liq(klon,klev), ref_ice(klon,klev)938 858 c$OMP THREADPRIVATE(ok_newmicro) 939 859 save fact_cldcon,facttemps … … 973 893 c Variables locales pour effectuer les appels en serie 974 894 c 975 REAL zx_rh(klon,klev)976 895 cIM RH a 2m (la surface) 977 REAL rh2m(klon), qsat2m(klon)978 REAL tpot(klon), tpote(klon)979 896 REAL Lheat 980 897 … … 1091 1008 REAL ZRCPD 1092 1009 c-jld ec_conser 1093 REAL t2m(klon,nbsrf) ! temperature a 2m1094 1010 REAL q2m(klon,nbsrf) ! humidite a 2m 1095 1011 1096 1012 cIM: t2m, q2m, ustar, u10m, v10m et t2mincels, t2maxcels 1097 REAL zt2m(klon), zq2m(klon) !temp., hum. 2m moyenne s/ 1 maille1098 REAL zustar(klon),zu10m(klon), zv10m(klon) ! u* et vents a 10m moyennes s/1 maille1099 1013 CHARACTER*40 t2mincels, t2maxcels !t2m min., t2m max 1100 1014 CHARACTER*40 tinst, tave, typeval 1101 1015 REAL cldtaupi(klon,klev) ! Cloud optical thickness for pre-industrial (pi) aerosols 1102 1016 1103 REAL re(klon, klev) ! Cloud droplet effective radius1104 REAL fl(klon, klev) ! denominator of re1105 1017 1106 1018 REAL re_top(klon), fl_top(klon) ! CDR at top of liquid water clouds … … 1228 1140 ! Utilise notamment en 1D mais peut etre active egalement en 3D 1229 1141 ! en imposant la valeur de igout. 1230 c====================================================================== 1231 1142 c======================================================================d 1232 1143 if (prt_level.ge.1) then 1233 1144 igout=klon/2+1/klon … … 1250 1161 1251 1162 c====================================================================== 1252 1253 cym => necessaire pour iflag_con != 21254 pmfd(:,:) = 0.1255 pen_u(:,:) = 0.1256 pen_d(:,:) = 0.1257 pde_d(:,:) = 0.1258 pde_u(:,:) = 0.1259 aam=0.1260 1261 torsfc=0.1262 forall (k=1: llm) zmasse(:, k) = (paprs(:, k)-paprs(:, k+1)) / rg1263 1163 1264 1164 if (first) then … … 1301 1201 1302 1202 endif ! first 1203 1204 cym => necessaire pour iflag_con != 2 1205 pmfd(:,:) = 0. 1206 pen_u(:,:) = 0. 1207 pen_d(:,:) = 0. 1208 pde_d(:,:) = 0. 1209 pde_u(:,:) = 0. 1210 aam=0. 1211 1212 torsfc=0. 1213 forall (k=1: llm) zmasse(:, k) = (paprs(:, k)-paprs(:, k+1)) / rg 1214 1215 1303 1216 1304 1217 modname = 'physiq' … … 1600 1513 call phys_output_open(rlon,rlat,nCFMIP,tabijGCM, 1601 1514 & iGCM,jGCM,lonGCM,latGCM, 1602 & jjmp1,nlevSTD,clevSTD, 1515 & jjmp1,nlevSTD,clevSTD,rlevSTD, 1603 1516 & nbteta, ctetaSTD, dtime,ok_veget, 1604 1517 & type_ocean,iflag_pbl,ok_mensuel,ok_journe, … … 1606 1519 & read_climoz, phys_out_filestations, 1607 1520 & new_aod, aerosol_couple, 1608 & flag_aerosol_strat ) 1521 & flag_aerosol_strat, pdtphys, paprs, pphis, 1522 & pplay, lmax_th, ptconv, ptconvth, ivap, 1523 & d_t, qx, d_qx, zmasse, ok_sync) 1609 1524 c$OMP END MASTER 1610 1525 c$OMP BARRIER 1611 1526 1527 #undef histISCCP 1612 1528 #ifdef histISCCP 1613 1529 #include "ini_histISCCP.h" 1614 #endif1615 1616 #ifdef histNMC1617 #include "ini_histhfNMC.h"1618 #include "ini_histdayNMC.h"1619 #include "ini_histmthNMC.h"1620 1530 #endif 1621 1531 … … 1969 1879 DO i = 1, klon 1970 1880 zlvdcp=RLVTT/RCPD/(1.0+RVTMP2*q_seri(i,k)) 1971 c zlsdcp=RLSTT/RCPD/(1.0+RVTMP2*q_seri(i,k)) 1972 zlsdcp=RLVTT/RCPD/(1.0+RVTMP2*q_seri(i,k)) 1881 cjyg< 1882 c Attention : Arnaud a propose des formules completement differentes 1883 c A verifier !!! 1884 zlsdcp=RLSTT/RCPD/(1.0+RVTMP2*q_seri(i,k)) 1885 IF (iflag_ice_thermo .EQ. 0) THEN 1886 zlsdcp=zlvdcp 1887 ENDIF 1888 c>jyg 1889 1973 1890 zdelta = MAX(0.,SIGN(1.,RTT-t_seri(i,k))) 1974 1891 zb = MAX(0.0,ql_seri(i,k)) … … 2083 2000 e t_seri, q_seri, u_seri, v_seri, 2084 2001 e pplay, paprs, pctsrf, 2085 + ftsol, falb1, falb2, ustar, u10m, v10m,2002 + ftsol,falb1,falb2,ustar,u10m,v10m,wstar, 2086 2003 s sollwdown, cdragh, cdragm, u1, v1, 2087 2004 s albsol1, albsol2, sens, evap, … … 2354 2271 nbtr_tmp=nbtr 2355 2272 END IF 2356 CALL concvl (iflag_con,iflag_clos, 2273 cjyg iflag_con est dans clesphys 2274 cc CALL concvl (iflag_con,iflag_clos, 2275 CALL concvl (iflag_clos, 2357 2276 . dtime,paprs,pplay,t_undi,q_undi, 2358 2277 . t_wake,q_wake,wake_s, 2359 2278 . u_seri,v_seri,tr_seri,nbtr_tmp, 2360 2279 . ALE,ALP, 2361 . ema_work1,ema_work2,2280 . sig1,w01, 2362 2281 . d_t_con,d_q_con,d_u_con,d_v_con,d_tr, 2363 2282 . rain_con, snow_con, ibas_con, itop_con, sigd, … … 2392 2311 . paprs,pplay,t_seri,q_seri, 2393 2312 . u_seri,v_seri,tr_seri,ntra, 2394 . ema_work1,ema_work2,2313 . sig1,w01, 2395 2314 . d_t_con,d_q_con,d_u_con,d_v_con,d_tr, 2396 2315 . rain_con, snow_con, ibas_con, itop_con, … … 2856 2775 . frac_impa, frac_nucl, beta_prec_fisrt, 2857 2776 . prfl, psfl, rhcl, 2858 . zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cldcon ) 2777 . zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cldcon, 2778 . iflag_ice_thermo) 2859 2779 2860 2780 WHERE (rain_lsc < 0) rain_lsc = 0. … … 3729 3649 I paprs, pplay, pmfu, pmfd, 3730 3650 I pen_u, pde_u, pen_d, pde_d, 3731 I cdragh, coefh(:,:,is_ave), 3651 I cdragh, coefh(:,:,is_ave), fm_therm, entr_therm, 3732 3652 I u1, v1, ftsol, pctsrf, 3733 I ustar, u10m, v10m, 3653 I zustar, zu10m, zv10m, 3654 I wstar(:,is_ave), ale_bl, ale_wake, 3734 3655 I rlat, rlon, 3735 3656 I frac_impa,frac_nucl, beta_prec_fisrt,beta_prec, … … 4031 3952 endif 4032 3953 4033 #include "phys_output_write_new.h" 3954 3955 !On effectue les sorties: 3956 3957 CALL phys_output_write(itap, pdtphys, paprs, pphis, & 3958 & pplay, lmax_th, aerosol_couple, & 3959 & ok_ade, ok_aie, ivap, new_aod, ok_sync, & 3960 & ptconv, read_climoz, clevSTD, freq_moyNMC, & 3961 & ptconvth, d_t, qx, d_qx, zmasse, & 3962 & flag_aerosol_strat) 4034 3963 4035 3964 … … 4038 3967 #ifdef histISCCP 4039 3968 #include "write_histISCCP.h" 4040 #endif4041 4042 #ifdef histNMC4043 #include "write_histhfNMC.h"4044 #include "write_histdayNMC.h"4045 #include "write_histmthNMC.h"4046 3969 #endif 4047 3970
Note: See TracChangeset
for help on using the changeset viewer.