Ignore:
Timestamp:
Oct 16, 2016, 11:17:32 AM (8 years ago)
Author:
oboucher
Message:

adding new diagnostics for evap/rain/snow weighted by surface types
this parallels what was done for wbilo (net flux)
new diagnostics are wevap_??? wrain_??? wsnow_???
where ??? is ter, oce, lic or sic.

Location:
LMDZ5/trunk/libf/phylmd
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90

    r2655 r2670  
    179179       z0m, z0h,   agesno,  sollw,    solsw,         &
    180180       d_ts,      evap,    fluxlat,  t2m,           &
    181        wfbils,    wfbilo,    flux_t,   flux_u, flux_v,&
     181       wfbils,    wfbilo, wfevap, wfrain, wfsnow,   &
     182       flux_t,   flux_u, flux_v,                    &
    182183       dflux_t,   dflux_q,   zxsnow,                  &
    183184!jyg<
     
    431432    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: t2m        ! temperature at 2 meter height
    432433    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfbils     ! heat balance at surface
    433     REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfbilo     ! water balance at surface
     434    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfbilo     ! water balance at surface weighted by srf
     435    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfevap     ! water balance (evap) at surface weighted by srf
     436    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfrain     ! water balance (rain) at surface weighted by srf
     437    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfsnow     ! water balance (snow) at surface weighted by srf
    434438    REAL, DIMENSION(klon, klev, nbsrf), INTENT(OUT) :: flux_t     ! sensible heat flux (CpT) J/m**2/s (W/m**2)
    435439                                                                  ! positve orientation downwards
     
    865869 fluxlat(:,:)=0.
    866870 wfbils(:,:)=0. ; wfbilo(:,:)=0.
     871 wfevap(:,:)=0. ; wfrain(:,:)=0. ; wfsnow(:,:)=0.
    867872 flux_t(:,:,:)=0. ; flux_q(:,:,:)=0. ; flux_u(:,:,:)=0. ; flux_v(:,:,:)=0.
    868873 dflux_t(:)=0. ; dflux_q(:)=0.
     
    28232828          wfbils(i,nsrf) = ( solsw(i,nsrf) + sollw(i,nsrf) &
    28242829               + flux_t(i,1,nsrf) + fluxlat(i,nsrf) ) * pctsrf(i,nsrf)
    2825           wfbilo(i,nsrf) = (evap(i,nsrf) - (rain_f(i) + snow_f(i))) * &
    2826                pctsrf(i,nsrf)
     2830          wfbilo(i,nsrf) = (evap(i,nsrf)-(rain_f(i)+snow_f(i)))*pctsrf(i,nsrf)
     2831          wfevap(i,nsrf) = evap(i,nsrf)*pctsrf(i,nsrf)
     2832          wfrain(i,nsrf) = rain_f(i)*pctsrf(i,nsrf)
     2833          wfsnow(i,nsrf) = snow_f(i)*pctsrf(i,nsrf)
    28272834
    28282835          zxtsol(i)    = zxtsol(i)    + ts(i,nsrf)      * pctsrf(i,nsrf)
  • LMDZ5/trunk/libf/phylmd/phys_local_var_mod.F90

    r2635 r2670  
    372372      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fsolsw, wfbils, wfbilo
    373373!$OMP THREADPRIVATE(fsolsw, wfbils, wfbilo)
     374      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wfevap, wfrain, wfsnow
     375!$OMP THREADPRIVATE(wfevap,wfrain,wfsnow)
    374376      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: t2m, fluxlat, fsollw,evap_pot
    375377!$OMP THREADPRIVATE(t2m, fluxlat, fsollw,evap_pot)
     
    633635      ALLOCATE(fsollw(klon, nbsrf))
    634636      ALLOCATE(fsolsw(klon, nbsrf), wfbils(klon, nbsrf), wfbilo(klon, nbsrf))
     637      ALLOCATE(wfevap(klon, nbsrf), wfrain(klon,nbsrf), wfsnow(klon, nbsrf))
    635638      ALLOCATE(evap_pot(klon, nbsrf))
    636639
     
    854857      DEALLOCATE(fsollw, evap_pot)
    855858      DEALLOCATE(fsolsw, wfbils, wfbilo)
     859      DEALLOCATE(wfevap,wfrain,wfsnow)
    856860
    857861      DEALLOCATE(pmflxr, pmflxs, prfl)
  • LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r2665 r2670  
    586586      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wbilo_sic',          &
    587587      "Bilan eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 9) /)) /)
     588
     589  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wevap_srf    = (/      &
     590      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wevap_ter',          &
     591      "Evap eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
     592      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wevap_lic',          &
     593      "Evap eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
     594      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wevap_oce',          &
     595      "Evap eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
     596      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wevap_sic',          &
     597      "Evap eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 9) /)) /)
     598
     599  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wrain_srf    = (/      &
     600      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wrain_ter',          &
     601      "Pluie eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
     602      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wrain_lic',          &
     603      "Pluie eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
     604      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wrain_oce',          &
     605      "Pluie eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
     606      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wrain_sic',          &
     607      "Pluie eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 9) /)) /)
     608
     609  TYPE(ctrl_out), SAVE, DIMENSION(4) :: o_wsnow_srf    = (/      &
     610      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wsnow_ter',          &
     611      "Neige eau "//clnsurf(1),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
     612      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wsnow_lic',          &
     613      "Neige eau "//clnsurf(2),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
     614      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wsnow_oce',          &
     615      "Neige eau "//clnsurf(3),"kg/(m2*s)", (/ ('', i=1, 9) /)), &
     616      ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /),'wsnow_sic',          &
     617      "Neige eau "//clnsurf(4),"kg/(m2*s)", (/ ('', i=1, 9) /)) /)
    588618
    589619  TYPE(ctrl_out), SAVE :: o_cdrm = ctrl_out((/ 1, 10, 10, 10, 10, 10, 11, 11, 11 /), &
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r2665 r2670  
    5959         o_sens_srf, o_lat_srf, o_flw_srf, &
    6060         o_fsw_srf, o_wbils_srf, o_wbilo_srf, &
     61         o_wevap_srf, o_wrain_srf, o_wsnow_srf, &
    6162         o_tke_srf, o_tke_max_srf,o_dltpbltke_srf, o_wstar, &
    6263         o_l_mixmin,o_l_mix, &
     
    218219         sissnow, runoff, albsol3_lic, evap_pot, &
    219220         t2m, fluxt, fluxlat, fsollw, fsolsw, &
    220          wfbils, wfbilo, cdragm, cdragh, cldl, cldm, &
     221         wfbils, wfbilo, wfevap, wfrain, wfsnow, &
     222         cdragm, cdragh, cldl, cldm, &
    221223         cldh, cldt, JrNt, cldljn, cldmjn, cldhjn, &
    222224         cldtjn, cldq, flwp, fiwp, ue, ve, uq, vq, &
     
    679681
    680682       DO nsrf = 1, nbsrf
     683
    681684          IF (vars_defined)             zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
    682685          CALL histwrite_phy(o_pourc_srf(nsrf), zx_tmp_fi2d)
     
    713716          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
    714717          CALL histwrite_phy(o_wbilo_srf(nsrf), zx_tmp_fi2d)
     718          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfevap( 1 : klon, nsrf)
     719          CALL histwrite_phy(o_wevap_srf(nsrf), zx_tmp_fi2d)
     720          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfrain( 1 : klon, nsrf)
     721          CALL histwrite_phy(o_wrain_srf(nsrf), zx_tmp_fi2d)
     722          IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfsnow( 1 : klon, nsrf)
     723          CALL histwrite_phy(o_wsnow_srf(nsrf), zx_tmp_fi2d)
    715724
    716725          IF (iflag_pbl > 1) THEN
  • LMDZ5/trunk/libf/phylmd/physiq_mod.F90

    r2665 r2670  
    174174       fsollw, evap_pot,  &
    175175       fsolsw, wfbils, wfbilo,  &
    176        
     176       wfevap, wfrain, wfsnow,  & 
    177177       pmflxr, pmflxs, prfl,  &
    178178       psfl, fraca, Vprecip,  &
     
    22102210            z0m, z0h,     agesno,    fsollw,  fsolsw, &
    22112211            d_ts,      fevap,     fluxlat, t2m, &
    2212             wfbils,    wfbilo,    fluxt,   fluxu,  fluxv, &
     2212            wfbils, wfbilo, wfevap, wfrain, wfsnow, &
     2213            fluxt,   fluxu,  fluxv, &
    22132214            dsens,     devap,     zxsnow, &
    22142215            zxfluxt,   zxfluxq,   q2m,     fluxq, pbl_tke, &
Note: See TracChangeset for help on using the changeset viewer.