Changeset 4737


Ignore:
Timestamp:
Oct 24, 2023, 12:13:53 PM (7 months ago)
Author:
oboucher
Message:

moving the calculation of wfbilo wfrain and wfsnow inside phys_output_write_mod so that it uses the timestep values of rain and snow instead of the values from the previous timestep as it was the case in pbl_surface. Thus there is exact mass balance in the output.

Location:
LMDZ6/trunk/libf
Files:
7 edited

Legend:

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

    r4735 r4737  
    184184       debut,     lafin,                              &
    185185       rlon,      rlat,      rugoro,   rmu0,          &
    186        lwdown_m,  cldt,          &
     186       lwdown_m,  cldt,                               &
    187187       rain_f,    snow_f,    bs_f, solsw_m,  solswfdiff_m, sollw_m,       &
    188188       gustiness,                                     &
    189        t,         q,        qbs,  u,        v,             &
     189       t,         q,        qbs,  u,        v,        &
    190190!!! nrlmd+jyg le 02/05/2011 et le 20/02/2012
    191191!!       t_x,       q_x,       t_w,      q_w,           &
     
    199199       beta, &
    200200!>jyg
    201        alb_dir_m,    alb_dif_m,  zxsens,   zxevap,  zxsnowerosion,  &
     201       alb_dir_m,    alb_dif_m,  zxsens,   zxevap,  zxsnowerosion,      &
    202202       alb3_lic,  runoff,    snowhgt,   qsnow,     to_ice,    sissnow,  &
    203        zxtsol,    zxfluxlat, zt2m,     qsat2m, zn2mout, &
    204        d_t,       d_q,    d_qbs,    d_u,      d_v, d_t_diss, &
     203       zxtsol,    zxfluxlat, zt2m,     qsat2m, zn2mout,                 &
     204       d_t,       d_q,    d_qbs,    d_u,      d_v, d_t_diss,            &
    205205!!! nrlmd+jyg le 02/05/2011 et le 20/02/2012
    206        d_t_w,     d_q_w,                              &
    207        d_t_x,     d_q_x,                              &
     206       d_t_w,     d_q_w,                             &
     207       d_t_x,     d_q_x,                             &
    208208!!       d_wake_dlt,d_wake_dlq,                         &
    209        zxsens_x,  zxfluxlat_x,zxsens_w,zxfluxlat_w,   &
     209       zxsens_x,  zxfluxlat_x,zxsens_w,zxfluxlat_w,  &
    210210!!!
    211211!!! nrlmd le 13/06/2011
    212        delta_tsurf,wake_dens,cdragh_x,cdragh_w,       &
    213        cdragm_x,cdragm_w,kh,kh_x,kh_w,                &
    214 !!!
    215        zcoefh,    zcoefm,    slab_wfbils,             &
    216        qsol,    zq2m,      s_pblh,   s_plcl,        &
     212       delta_tsurf,wake_dens,cdragh_x,cdragh_w,      &
     213       cdragm_x,cdragm_w,kh,kh_x,kh_w,               &
     214!!!
     215       zcoefh,    zcoefm,    slab_wfbils,            &
     216       qsol,    zq2m,      s_pblh,   s_plcl,         &
    217217!!!
    218218!!! jyg le 08/02/2012
    219        s_pblh_x, s_plcl_x,   s_pblh_w, s_plcl_w,      &
    220 !!!
    221        s_capCL,   s_oliqCL,  s_cteiCL, s_pblT,        &
    222        s_therm,   s_trmb1,   s_trmb2,  s_trmb3,       &
    223        zustar,zu10m,  zv10m,    fder_print,    &
    224        zxqsurf, delta_qsurf,                       &
    225        rh2m,      zxfluxu,  zxfluxv,               &
     219       s_pblh_x, s_plcl_x,   s_pblh_w, s_plcl_w,     &
     220!!!
     221       s_capCL,   s_oliqCL,  s_cteiCL, s_pblT,       &
     222       s_therm,   s_trmb1,   s_trmb2,  s_trmb3,      &
     223       zustar,zu10m,  zv10m,    fder_print,          &
     224       zxqsurf, delta_qsurf,                         &
     225       rh2m,      zxfluxu,  zxfluxv,                 &
    226226       z0m, z0h,   agesno,  sollw,    solsw,         &
    227227       d_ts,      evap,    fluxlat,   t2m,           &
    228        wfbils,    wfbilo, wfevap, wfrain, wfsnow,   &
    229        flux_t,   flux_u, flux_v,                    &
    230        dflux_t,   dflux_q,   zxsnow,                  &
     228       wfbils,    wfevap,                            &
     229       flux_t,   flux_u, flux_v,                     &
     230       dflux_t,   dflux_q,   zxsnow,                 &
    231231!jyg<
    232232!!       zxfluxt,   zxfluxq,   q2m,      flux_q, tke,   &
     
    235235!!! nrlmd+jyg le 02/05/2011 et le 20/02/2012
    236236!!        tke_x,     tke_w                              &
    237        wake_dltke,                                     &
    238         treedrg                                   &
     237       wake_dltke,                                   &
     238        treedrg                                      &
    239239!FC
    240240!!!
     
    503503    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: t2m        ! temperature at 2 meter height
    504504    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfbils     ! heat balance at surface
    505     REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfbilo     ! water balance at surface weighted by srf
    506505    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfevap     ! water balance (evap) at surface weighted by srf
    507     REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfrain     ! water balance (rain) at surface weighted by srf
    508     REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfsnow     ! water balance (snow) at surface weighted by srf
    509506    REAL, DIMENSION(klon, klev, nbsrf), INTENT(OUT) :: flux_t     ! sensible heat flux (CpT) J/m**2/s (W/m**2)
    510507                                                                  ! positve orientation downwards
     
    10271024 snowerosion(:,:)=0.
    10281025 fluxlat(:,:)=0.
    1029  wfbils(:,:)=0. ; wfbilo(:,:)=0.
    1030  wfevap(:,:)=0. ; wfrain(:,:)=0. ; wfsnow(:,:)=0.
     1026 wfbils(:,:)=0. ; wfevap(:,:)=0. ;
    10311027 flux_t(:,:,:)=0. ; flux_q(:,:,:)=0. ; flux_u(:,:,:)=0. ; flux_v(:,:,:)=0.
    10321028 flux_qbs(:,:,:)=0.
     
    34583454          wfbils(i,nsrf) = ( solsw(i,nsrf) + sollw(i,nsrf) &
    34593455               + flux_t(i,1,nsrf) + fluxlat(i,nsrf) ) * pctsrf(i,nsrf)
    3460           wfbilo(i,nsrf) = (evap(i,nsrf)-(rain_f(i)+snow_f(i)))*pctsrf(i,nsrf)
     3456
    34613457          wfevap(i,nsrf) = evap(i,nsrf)*pctsrf(i,nsrf)
    3462           wfrain(i,nsrf) = rain_f(i)*pctsrf(i,nsrf)
    3463           wfsnow(i,nsrf) = snow_f(i)*pctsrf(i,nsrf)
    34643458
    34653459          zxtsol(i)    = zxtsol(i)    + ts(i,nsrf)      * pctsrf(i,nsrf)
  • LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90

    r4703 r4737  
    313313!$OMP THREADPRIVATE(cdragm, cdragh)
    314314      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: cldh, cldl, cldm, cldq, cldt, qsat2m
    315 !$OMP THREADPRIVATE(cldh, cldl, cldm, cldq, cldt, qsat2m )
     315!$OMP THREADPRIVATE(cldh, cldl, cldm, cldq, cldt, qsat2m)
    316316!AS: cldhjn, cldljn, cldmjn,cldtjn pas utilisés en tant que variables, juste noms de diagnostics
    317317      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: JrNt
     
    406406      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: proba_notrig, random_notrig
    407407!$OMP THREADPRIVATE(proba_notrig, random_notrig)
    408       REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fsolsw, wfbils, wfbilo
    409 !$OMP THREADPRIVATE(fsolsw, wfbils, wfbilo)
    410       REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wfevap, wfrain, wfsnow
    411 !$OMP THREADPRIVATE(wfevap,wfrain,wfsnow)
     408      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fsolsw, wfbils
     409!$OMP THREADPRIVATE(fsolsw, wfbils)
     410      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wfevap
     411!$OMP THREADPRIVATE(wfevap)
    412412      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: t2m, fluxlat, fsollw,evap_pot
    413413!$OMP THREADPRIVATE(t2m, fluxlat, fsollw,evap_pot)
     
    862862      ALLOCATE(t2m(klon, nbsrf), fluxlat(klon, nbsrf))
    863863      ALLOCATE(fsollw(klon, nbsrf))
    864       ALLOCATE(fsolsw(klon, nbsrf), wfbils(klon, nbsrf), wfbilo(klon, nbsrf))
    865       ALLOCATE(wfevap(klon, nbsrf), wfrain(klon,nbsrf), wfsnow(klon, nbsrf))
     864      ALLOCATE(fsolsw(klon, nbsrf), wfbils(klon, nbsrf))
     865      ALLOCATE(wfevap(klon, nbsrf))
    866866      ALLOCATE(evap_pot(klon, nbsrf))
    867867! FC
     
    871871      ALLOCATE(pmflxr(klon, klev+1), pmflxs(klon, klev+1))
    872872      ALLOCATE(wdtrainA(klon,klev),wdtrainS(klon,klev),wdtrainM(klon,klev))
    873       ALLOCATE(dnwd(klon, klev), upwd(klon, klev) )
     873      ALLOCATE(dnwd(klon, klev), upwd(klon, klev))
    874874      ALLOCATE(ep(klon,klev))                          ! epmax_cape
    875       ALLOCATE(da(klon,klev), mp(klon,klev) )
    876       ALLOCATE(phi(klon,klev,klev) )
    877       ALLOCATE(wght_cvfd(klon,klev) )
    878       ALLOCATE(phi2(klon,klev,klev) )
     875      ALLOCATE(da(klon,klev), mp(klon,klev))
     876      ALLOCATE(phi(klon,klev,klev))
     877      ALLOCATE(wght_cvfd(klon,klev))
     878      ALLOCATE(phi2(klon,klev,klev))
    879879      ALLOCATE(d1a(klon,klev), dam(klon,klev))
    880       ALLOCATE(ev(klon,klev) )
    881       ALLOCATE(elij(klon,klev,klev) )
    882       ALLOCATE(qtaa(klon,klev) )
    883       ALLOCATE(clw(klon,klev) )
    884       ALLOCATE(epmlmMm(klon,klev,klev), eplaMm(klon,klev) )
    885       ALLOCATE(sij(klon,klev,klev) )
     880      ALLOCATE(ev(klon,klev))
     881      ALLOCATE(elij(klon,klev,klev))
     882      ALLOCATE(qtaa(klon,klev))
     883      ALLOCATE(clw(klon,klev))
     884      ALLOCATE(epmlmMm(klon,klev,klev), eplaMm(klon,klev))
     885      ALLOCATE(sij(klon,klev,klev))
    886886
    887887      ALLOCATE(prfl(klon, klev+1))
     
    11841184      DEALLOCATE(t2m, fluxlat)
    11851185      DEALLOCATE(fsollw, evap_pot)
    1186       DEALLOCATE(fsolsw, wfbils, wfbilo)
    1187       DEALLOCATE(wfevap,wfrain,wfsnow)
     1186      DEALLOCATE(fsolsw, wfbils)
     1187      DEALLOCATE(wfevap)
    11881188
    11891189      DEALLOCATE(pmflxr, pmflxs)
     
    11911191      DEALLOCATE(upwd, dnwd)
    11921192      DEALLOCATE(ep)
    1193       DEALLOCATE(da, mp )
    1194       DEALLOCATE(phi )
    1195       DEALLOCATE(wght_cvfd )
    1196       DEALLOCATE(phi2 )
     1193      DEALLOCATE(da, mp)
     1194      DEALLOCATE(phi)
     1195      DEALLOCATE(wght_cvfd)
     1196      DEALLOCATE(phi2)
    11971197      DEALLOCATE(d1a, dam)
    1198       DEALLOCATE(ev )
    1199       DEALLOCATE(elij )
    1200       DEALLOCATE(qtaa )
    1201       DEALLOCATE(clw )
    1202       DEALLOCATE(epmlmMm, eplaMm )
    1203       DEALLOCATE(sij )
     1198      DEALLOCATE(ev)
     1199      DEALLOCATE(elij)
     1200      DEALLOCATE(qtaa)
     1201      DEALLOCATE(clw)
     1202      DEALLOCATE(epmlmMm, eplaMm)
     1203      DEALLOCATE(sij)
    12041204
    12051205
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r4703 r4737  
    282282         wTSTD, u2STD, v2STD, T2STD, missing_val_nf90, delta_sal, ds_ns, &
    283283#ifdef ISO
    284         xtrain_con, xtsnow_con, xtrain_fall, xtsnow_fall, fxtevap, &
     284         xtrain_con, xtsnow_con, xtrain_fall, xtsnow_fall, fxtevap, &
    285285#endif
    286286         dt_ns, delta_sst, dter, dser
     
    292292        toplw0_s2,toplw_s2,topsw0_s2,topsw_s2
    293293#endif
    294 
    295294
    296295    USE phys_local_var_mod, ONLY: zxfluxlat, slp, ptstar, pt0, zxtsol, zt2m, &
     
    304303         sissnow, runoff, albsol3_lic, evap_pot, &
    305304         t2m, fluxt, fluxlat, fsollw, fsolsw, &
    306          wfbils, wfbilo, wfevap, wfrain, wfsnow, &
     305         wfbils, wfevap, &
    307306         cdragm, cdragh, cldl, cldm, &
    308307         cldh, cldt, JrNt,   & ! only output names: cldljn,cldmjn,cldhjn,cldtjn
     
    380379         reffclwc, cldnvi, lcc3d, lcc3dcon, lcc3dstra, icc3dcon, icc3dstra
    381380   
    382 
    383381#ifdef CPP_StratAer
    384382    USE phys_local_var_mod, ONLY:  &
     
    444442#endif
    445443    USE tracinca_mod, ONLY: config_inca
    446     use config_ocean_skin_m, only: activate_ocean_skin
     444    USE config_ocean_skin_m, ONLY: activate_ocean_skin
    447445
    448446    USE vertical_layers_mod, ONLY: presnivs
     
    503501    REAL, DIMENSION(klon,klev) :: coefh_stok
    504502   
    505    
    506503#ifdef CPP_StratAer
    507504    LOGICAL, PARAMETER :: debug_strataer=.FALSE.
     
    541538    Bhyb_bounds(1,1) = 1.
    542539    Bhyb_bounds(1,2) = bps(1)   
     540
    543541    DO ilev=2,klev
    544542      Ahyb_bounds(ilev,1) = aps(ilev-1)
     
    547545      Bhyb_bounds(ilev,2) = bps(ilev)
    548546    ENDDO
    549      Ahyb_bounds(klev+1,1) = aps(klev)
    550      Ahyb_bounds(klev+1,2) = 0.
    551      Bhyb_bounds(klev+1,1) = bps(klev)
    552      Bhyb_bounds(klev+1,2) = 0.
     547
     548    Ahyb_bounds(klev+1,1) = aps(klev)
     549    Ahyb_bounds(klev+1,2) = 0.
     550    Bhyb_bounds(klev+1,1) = bps(klev)
     551    Bhyb_bounds(klev+1,2) = 0.
    553552
    554553    DO ilev=1, klev
     
    557556      Bhyb_mid_bounds(ilev,1) = bp(ilev)
    558557      Bhyb_mid_bounds(ilev,2) = bp(ilev+1)
    559     END DO
     558    ENDDO
    560559
    561560
     
    616615!
    617616#ifdef CPP_RRTM
    618         IF (iflag_rrtm.EQ.1) THEN
    619           DO ISW=1, NSW
    620             WRITE(ch1,'(i1)') ISW
    621   !         zx_tmp_0d=RSUN(ISW)
    622   !         CALL histwrite_phy("rsun"//ch1,zx_tmp_0d)
    623             CALL histwrite_phy("rsun"//ch1,RSUN(ISW))
    624           ENDDO
    625         ENDIF
     617         IF (iflag_rrtm.EQ.1) THEN
     618           DO ISW=1, NSW
     619             WRITE(ch1,'(i1)') ISW
     620  !          zx_tmp_0d=RSUN(ISW)
     621  !          CALL histwrite_phy("rsun"//ch1,zx_tmp_0d)
     622             CALL histwrite_phy("rsun"//ch1,RSUN(ISW))
     623           ENDDO
     624         ENDIF
    626625#endif
    627626!
    628         CALL histwrite_phy("co2_ppm",co2_ppm)
    629         CALL histwrite_phy("CH4_ppb",CH4_ppb)
    630         CALL histwrite_phy("N2O_ppb",N2O_ppb)
    631         CALL histwrite_phy("CFC11_ppt",CFC11_ppt)
    632         CALL histwrite_phy("CFC12_ppt",CFC12_ppt)
     627         CALL histwrite_phy("co2_ppm",co2_ppm)
     628         CALL histwrite_phy("CH4_ppb",CH4_ppb)
     629         CALL histwrite_phy("N2O_ppb",N2O_ppb)
     630         CALL histwrite_phy("CFC11_ppt",CFC11_ppt)
     631         CALL histwrite_phy("CFC12_ppt",CFC12_ppt)
    633632!
    634       ENDIF !using_xios
     633       ENDIF !using_xios
    635634
    636635!!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    637636! Simulateur AIRS
    638      IF (ok_airs) then
    639       CALL histwrite_phy(o_alt_tropo,alt_tropo)
     637       IF (ok_airs) then
     638         CALL histwrite_phy(o_alt_tropo,alt_tropo)
    640639 
    641       CALL histwrite_phy(o_map_prop_hc,map_prop_hc)
    642       CALL histwrite_phy(o_map_prop_hist,map_prop_hist)
    643 
    644       CALL histwrite_phy(o_map_emis_hc,map_emis_hc)
    645       CALL histwrite_phy(o_map_iwp_hc,map_iwp_hc)
    646       CALL histwrite_phy(o_map_deltaz_hc,map_deltaz_hc)
    647       CALL histwrite_phy(o_map_pcld_hc,map_pcld_hc)
    648       CALL histwrite_phy(o_map_tcld_hc,map_tcld_hc)
    649 
    650       CALL histwrite_phy(o_map_emis_hist,map_emis_hist)
    651       CALL histwrite_phy(o_map_iwp_hist,map_iwp_hist)
    652       CALL histwrite_phy(o_map_deltaz_hist,map_deltaz_hist)
    653 
    654       CALL histwrite_phy(o_map_ntot,map_ntot)
    655       CALL histwrite_phy(o_map_hc,map_hc)
    656       CALL histwrite_phy(o_map_hist,map_hist)
    657 
    658       CALL histwrite_phy(o_map_Cb,map_Cb)
    659       CALL histwrite_phy(o_map_ThCi,map_ThCi)
    660       CALL histwrite_phy(o_map_Anv,map_Anv)
    661 
    662       CALL histwrite_phy(o_map_emis_Cb,map_emis_Cb)
    663       CALL histwrite_phy(o_map_pcld_Cb,map_pcld_Cb)
    664       CALL histwrite_phy(o_map_tcld_Cb,map_tcld_Cb)
    665 
    666       CALL histwrite_phy(o_map_emis_ThCi,map_emis_ThCi)
    667       CALL histwrite_phy(o_map_pcld_ThCi,map_pcld_ThCi)
    668       CALL histwrite_phy(o_map_tcld_ThCi,map_tcld_ThCi)
    669 
    670       CALL histwrite_phy(o_map_emis_Anv,map_emis_Anv)
    671       CALL histwrite_phy(o_map_pcld_Anv,map_pcld_Anv)
    672       CALL histwrite_phy(o_map_tcld_Anv,map_tcld_Anv)
    673      ENDIF
     640         CALL histwrite_phy(o_map_prop_hc,map_prop_hc)
     641         CALL histwrite_phy(o_map_prop_hist,map_prop_hist)
     642
     643         CALL histwrite_phy(o_map_emis_hc,map_emis_hc)
     644         CALL histwrite_phy(o_map_iwp_hc,map_iwp_hc)
     645         CALL histwrite_phy(o_map_deltaz_hc,map_deltaz_hc)
     646         CALL histwrite_phy(o_map_pcld_hc,map_pcld_hc)
     647         CALL histwrite_phy(o_map_tcld_hc,map_tcld_hc)
     648
     649         CALL histwrite_phy(o_map_emis_hist,map_emis_hist)
     650         CALL histwrite_phy(o_map_iwp_hist,map_iwp_hist)
     651         CALL histwrite_phy(o_map_deltaz_hist,map_deltaz_hist)
     652
     653         CALL histwrite_phy(o_map_ntot,map_ntot)
     654         CALL histwrite_phy(o_map_hc,map_hc)
     655         CALL histwrite_phy(o_map_hist,map_hist)
     656
     657         CALL histwrite_phy(o_map_Cb,map_Cb)
     658         CALL histwrite_phy(o_map_ThCi,map_ThCi)
     659         CALL histwrite_phy(o_map_Anv,map_Anv)
     660
     661         CALL histwrite_phy(o_map_emis_Cb,map_emis_Cb)
     662         CALL histwrite_phy(o_map_pcld_Cb,map_pcld_Cb)
     663         CALL histwrite_phy(o_map_tcld_Cb,map_tcld_Cb)
     664
     665         CALL histwrite_phy(o_map_emis_ThCi,map_emis_ThCi)
     666         CALL histwrite_phy(o_map_pcld_ThCi,map_pcld_ThCi)
     667         CALL histwrite_phy(o_map_tcld_ThCi,map_tcld_ThCi)
     668
     669         CALL histwrite_phy(o_map_emis_Anv,map_emis_Anv)
     670         CALL histwrite_phy(o_map_pcld_Anv,map_pcld_Anv)
     671         CALL histwrite_phy(o_map_tcld_Anv,map_tcld_Anv)
     672       ENDIF
    674673
    675674       CALL histwrite_phy(o_sza, sza_o)
     
    687686       IF (vars_defined) THEN
    688687          DO i=1, klon
    689              zx_tmp_fi2d(i)=real(zn2mout(i,1))
     688             zx_tmp_fi2d(i)=REAL(zn2mout(i,1))
    690689          ENDDO
    691690       ENDIF
     
    694693       IF (vars_defined) THEN
    695694          DO i=1, klon
    696              zx_tmp_fi2d(i)=real(zn2mout(i,2))
     695             zx_tmp_fi2d(i)=REAL(zn2mout(i,2))
    697696          ENDDO
    698697       ENDIF
     
    701700       IF (vars_defined) THEN
    702701          DO i=1, klon
    703              zx_tmp_fi2d(i)=real(zn2mout(i,3))
     702             zx_tmp_fi2d(i)=REAL(zn2mout(i,3))
    704703          ENDDO
    705704       ENDIF
     
    708707       IF (vars_defined) THEN
    709708          DO i=1, klon
    710              zx_tmp_fi2d(i)=real(zn2mout(i,4))
     709             zx_tmp_fi2d(i)=REAL(zn2mout(i,4))
    711710          ENDDO
    712711       ENDIF
     
    715714       IF (vars_defined) THEN
    716715          DO i=1, klon
    717              zx_tmp_fi2d(i)=real(zn2mout(i,5))
     716             zx_tmp_fi2d(i)=REAL(zn2mout(i,5))
    718717          ENDDO
    719718       ENDIF
     
    722721       IF (vars_defined) THEN
    723722          DO i=1, klon
    724              zx_tmp_fi2d(i)=real(zn2mout(i,6))
     723             zx_tmp_fi2d(i)=REAL(zn2mout(i,6))
    725724          ENDDO
    726725       ENDIF
     
    920919               ELSE
    921920                  WRITE(nvar,'(i3)') k
    922                END IF
     921               ENDIF
    923922               nvar='phi_lev'//trim(nvar)
    924923               CALL histwrite_phy(nvar,phi(:,:,k))
    925             END DO
     924            ENDDO
    926925         
    927926         ENDIF
    928927       ENDIF
    929 
    930 
    931 
    932928       
    933929       IF (vars_defined) THEN
     
    994990       CALL histwrite_phy(o_sols, zx_tmp_fi2d)
    995991       
    996        
    997992       IF (vars_defined) THEN
    998993          zx_tmp_fi2d = solsw0*swradcorr
     
    10681063!AI 08 2023 Ecrad 3Deffect
    10691064#ifdef CPP_ECRAD
    1070      if (ok_3Deffect) then
     1065     IF (ok_3Deffect) THEN
    10711066        IF (vars_defined) THEN
    10721067          zx_tmp_fi2d = solsw_s2*swradcorr
     
    10911086       CALL histwrite_phy(o_topl_s2, toplw_s2)
    10921087       CALL histwrite_phy(o_topl0_s2, toplw0_s2)
    1093      endif
     1088     ENDIF
    10941089#endif       
    10951090
     
    11341129       DO nsrf = 1, nbsrf
    11351130
    1136           IF (vars_defined)             zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
     1131          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)*100.
    11371132          CALL histwrite_phy(o_pourc_srf(nsrf), zx_tmp_fi2d)
    1138           IF (vars_defined)           zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
     1133          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = pctsrf( 1 : klon, nsrf)
    11391134          CALL histwrite_phy(o_fract_srf(nsrf), zx_tmp_fi2d)
    1140           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
     1135          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fluxu( 1 : klon, 1, nsrf)
    11411136          CALL histwrite_phy(o_taux_srf(nsrf), zx_tmp_fi2d)
    1142           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
     1137          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fluxv( 1 : klon, 1, nsrf)
    11431138          CALL histwrite_phy(o_tauy_srf(nsrf), zx_tmp_fi2d)
    1144           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
     1139          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = ftsol( 1 : klon, nsrf)
    11451140          CALL histwrite_phy(o_tsol_srf(nsrf), zx_tmp_fi2d)
    1146           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = evap_pot( 1 : klon, nsrf)
     1141          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = evap_pot( 1 : klon, nsrf)
    11471142          CALL histwrite_phy(o_evappot_srf(nsrf), zx_tmp_fi2d)
    11481143          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = ustar(1 : klon, nsrf)
     
    11561151          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fevap(1 : klon, nsrf)
    11571152          CALL histwrite_phy(o_evap_srf(nsrf), zx_tmp_fi2d)
    1158           IF (vars_defined)        zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
     1153          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fluxt( 1 : klon, 1, nsrf)
    11591154          CALL histwrite_phy(o_sens_srf(nsrf), zx_tmp_fi2d)
    1160           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
     1155          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fluxlat( 1 : klon, nsrf)
    11611156          CALL histwrite_phy(o_lat_srf(nsrf), zx_tmp_fi2d)
    1162           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
     1157          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fsollw( 1 : klon, nsrf)
    11631158          CALL histwrite_phy(o_flw_srf(nsrf), zx_tmp_fi2d)
    1164           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
     1159          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = fsolsw( 1 : klon, nsrf)
    11651160          CALL histwrite_phy(o_fsw_srf(nsrf), zx_tmp_fi2d)
    1166           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
     1161          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = wfbils( 1 : klon, nsrf)
    11671162          CALL histwrite_phy(o_wbils_srf(nsrf), zx_tmp_fi2d)
    1168           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfbilo( 1 : klon, nsrf)
     1163          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = (fevap(1:klon,nsrf)-(rain_fall(1:klon)+snow_fall(1:klon)))*pctsrf(1:klon,nsrf)
    11691164          CALL histwrite_phy(o_wbilo_srf(nsrf), zx_tmp_fi2d)
    1170           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfevap( 1 : klon, nsrf)
     1165          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = wfevap( 1 : klon, nsrf)
    11711166          CALL histwrite_phy(o_wevap_srf(nsrf), zx_tmp_fi2d)
    1172           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfrain( 1 : klon, nsrf)
     1167          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = rain_fall(1:klon)*pctsrf(1:klon,nsrf)
    11731168          CALL histwrite_phy(o_wrain_srf(nsrf), zx_tmp_fi2d)
    1174           IF (vars_defined)         zx_tmp_fi2d(1 : klon) = wfsnow( 1 : klon, nsrf)
     1169          IF (vars_defined)       zx_tmp_fi2d(1 : klon) = snow_fall(1:klon)*pctsrf(1:klon,nsrf)
    11751170          CALL histwrite_phy(o_wsnow_srf(nsrf), zx_tmp_fi2d)
    11761171
     
    11801175             CALL histwrite_phy(o_l_mixmin(nsrf),  l_mixmin(:,1:klev,nsrf))
    11811176             CALL histwrite_phy(o_tke_max_srf(nsrf),  pbl_tke(:,1:klev,nsrf))
    1182 
    1183                          
    11841177          ENDIF
    11851178!jyg<
     
    16241617             DO naero = 1, naero_tot-1
    16251618                CALL histwrite_phy(o_drytausumaero(naero),drytausum_aero(:,naero))
    1626              END DO
     1619             ENDDO
    16271620          ENDIF
    16281621       ENDIF
     
    16311624          DO naero = 1, naero_tot
    16321625             CALL histwrite_phy(o_tausumaero(naero),tausum_aero(:,2,naero))
    1633           END DO
     1626          ENDDO
    16341627       ENDIF
    16351628       IF (flag_aerosol_strat.GT.0) THEN
     
    16461639         DO k=1, klev
    16471640            zx_tmp_fi2d(:) = zx_tmp_fi2d(:) + wo(:,k,1) * stratomask(:,k) * 1.e3
    1648          END DO
     1641         ENDDO
    16491642       ENDIF
    16501643       CALL histwrite_phy(o_col_O3_strato, zx_tmp_fi2d) ! Added ThL
     
    16541647         DO k=1, klev
    16551648            zx_tmp_fi2d(:) = zx_tmp_fi2d(:) + wo(:,k,1) * (1.0-stratomask(:,k)) * 1.e3
    1656          END DO
     1649         ENDDO
    16571650       ENDIF
    16581651       CALL histwrite_phy(o_col_O3_tropo, zx_tmp_fi2d)   ! Added ThL
     
    19871980          CALL histwrite_phy(o_tke, zx_tmp_fi3d)
    19881981          CALL histwrite_phy(o_tke_max, zx_tmp_fi3d) 
    1989 
    19901982       ENDIF
    19911983
     
    19951987
    19961988       CALL histwrite_phy(o_clwcon, clwcon0)
     1989
    19971990       CALL histwrite_phy(o_dtdyn, d_t_dyn)
    19981991
     
    20102003
    20112004       IF (ok_bs) THEN
    2012        CALL histwrite_phy(o_dqbsdyn, d_qbs_dyn)
    2013        CALL histwrite_phy(o_dqbsdyn2d, d_qbs_dyn2d)
     2005         CALL histwrite_phy(o_dqbsdyn, d_qbs_dyn)
     2006         CALL histwrite_phy(o_dqbsdyn2d, d_qbs_dyn2d)
    20142007       ENDIF
    20152008
     
    20582051       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_t_lsc(1:klon,1:klev)/pdtphys
    20592052       CALL histwrite_phy(o_dtlsc, zx_tmp_fi3d)
    2060        IF (vars_defined) zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+ &
    2061             d_t_eva(1:klon,1:klev))/pdtphys
     2053       IF (vars_defined) zx_tmp_fi3d(1:klon, 1:klev)=(d_t_lsc(1:klon,1:klev)+d_t_eva(1:klon,1:klev))/pdtphys
    20622054       CALL histwrite_phy(o_dtlschr, zx_tmp_fi3d)
    20632055       IF (vars_defined) zx_tmp_fi3d(1:klon,1:klev)=d_q_lsc(1:klon,1:klev)/pdtphys
     
    21862178          CALL histwrite_phy(o_zmax_th, zmax_th)
    21872179          IF (vars_defined) THEN
    2188              zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys - &
    2189                   d_q_ajsb(1:klon,1:klev)/pdtphys
     2180             zx_tmp_fi3d(1:klon,1:klev)=d_q_ajs(1:klon,1:klev)/pdtphys-d_q_ajsb(1:klon,1:klev)/pdtphys
    21902181          ENDIF
    21912182          CALL histwrite_phy(o_dqthe, zx_tmp_fi3d)
     
    22802271       
    22812272       CALL histwrite_phy(o_rsu, zx_tmp_fi3d1)
    2282 
    22832273
    22842274       IF (vars_defined) THEN
     
    27122702          IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_ch4(ixt,:,:)/pdtphys
    27132703          CALL histwrite_phy(o_dxtch4(ixt), zx_tmp_fi3d)
    2714         END IF
     2704        ENDIF
    27152705
    27162706        IF (ixt == iso_HTO) THEN
     
    27232713          IF (vars_defined) zx_tmp_fi3d(:,:)=d_xt_decroiss(ixt,:,:)/pdtphys
    27242714          CALL histwrite_phy(o_dxtdecroiss(ixt), zx_tmp_fi3d)
    2725         END IF
     2715        ENDIF
    27262716
    27272717    !write(*,*) 'phys_output_write_mod 2531'
    2728     enddo
     2718    ENDDO
    27292719#endif
    27302720
     
    27592749             CALL histsync(nid_files(iff))
    27602750          ENDIF
    2761        END DO
     2751       ENDDO
    27622752       !$OMP END MASTER
    27632753#endif
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r4724 r4737  
    341341       t2m, fluxlat,  &
    342342       fsollw, evap_pot,  &
    343        fsolsw, wfbils, wfbilo,  &
    344        wfevap, wfrain, wfsnow,  & 
     343       fsolsw, wfbils, wfevap, & 
    345344       prfl, psfl,bsfl, fraca, Vprecip,  &
    346345       zw2,  &
     
    27582757    !   frugs,     agesno,    fsollw,  fsolsw,
    27592758    !   d_ts,      fevap,     fluxlat, t2m,
    2760     !   wfbils,    wfbilo,    fluxt,   fluxu, fluxv,
     2759    !   wfbils,    fluxt,   fluxu, fluxv,
    27612760    !
    27622761    ! Certains ne sont pas utiliser du tout :
     
    28752874            z0m, z0h,     agesno,    fsollw,  fsolsw, &
    28762875            d_ts,      fevap,     fluxlat, t2m, &
    2877             wfbils, wfbilo, wfevap, wfrain, wfsnow, &
     2876            wfbils, wfevap, &
    28782877            fluxt,   fluxu,  fluxv, &
    28792878            dsens,     devap,     zxsnow, &
  • LMDZ6/trunk/libf/phylmdiso/pbl_surface_mod.F90

    r4736 r4737  
    303303       z0m, z0h,   agesno,  sollw,    solsw,         &
    304304       d_ts,      evap,    fluxlat,   t2m,           &
    305        wfbils,    wfbilo, wfevap, wfrain, wfsnow,   &
     305       wfbils,    wfevap,                           &
    306306       flux_t,   flux_u, flux_v,                    &
    307307       dflux_t,   dflux_q,   zxsnow,                  &
     
    609609    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: t2m        ! temperature at 2 meter height
    610610    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfbils     ! heat balance at surface
    611     REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfbilo     ! water balance at surface weighted by srf
    612611    REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfevap     ! water balance (evap) at surface weighted by srf
    613     REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfrain     ! water balance (rain) at surface weighted by srf
    614     REAL, DIMENSION(klon, nbsrf), INTENT(OUT)       :: wfsnow     ! water balance (snow) at surface weighted by srf
    615612    REAL, DIMENSION(klon, klev, nbsrf), INTENT(OUT) :: flux_t     ! sensible heat flux (CpT) J/m**2/s (W/m**2)
    616613                                                                  ! positve orientation downwards
     
    12331230 snowerosion(:,:)=0.
    12341231 fluxlat(:,:)=0.
    1235  wfbils(:,:)=0. ; wfbilo(:,:)=0.
    1236  wfevap(:,:)=0. ; wfrain(:,:)=0. ; wfsnow(:,:)=0.
     1232 wfbils(:,:)=0. ; wfevap(:,:)=0.
    12371233 flux_t(:,:,:)=0. ; flux_q(:,:,:)=0. ; flux_u(:,:,:)=0. ; flux_v(:,:,:)=0.
    12381234 flux_qbs(:,:,:)=0.
     
    40314027          wfbils(i,nsrf) = ( solsw(i,nsrf) + sollw(i,nsrf) &
    40324028               + flux_t(i,1,nsrf) + fluxlat(i,nsrf) ) * pctsrf(i,nsrf)
    4033           wfbilo(i,nsrf) = (evap(i,nsrf)-(rain_f(i)+snow_f(i)))*pctsrf(i,nsrf)
    40344029          wfevap(i,nsrf) = evap(i,nsrf)*pctsrf(i,nsrf)
    4035           wfrain(i,nsrf) = rain_f(i)*pctsrf(i,nsrf)
    4036           wfsnow(i,nsrf) = snow_f(i)*pctsrf(i,nsrf)
    40374030
    40384031          zxtsol(i)    = zxtsol(i)    + ts(i,nsrf)      * pctsrf(i,nsrf)
  • LMDZ6/trunk/libf/phylmdiso/phys_local_var_mod.F90

    r4703 r4737  
    455455      REAL,ALLOCATABLE,SAVE,DIMENSION(:) :: proba_notrig, random_notrig
    456456!$OMP THREADPRIVATE(proba_notrig, random_notrig)
    457       REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fsolsw, wfbils, wfbilo
    458 !$OMP THREADPRIVATE(fsolsw, wfbils, wfbilo)
    459       REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wfevap, wfrain, wfsnow
    460 !$OMP THREADPRIVATE(wfevap,wfrain,wfsnow)
     457      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: fsolsw, wfbils
     458!$OMP THREADPRIVATE(fsolsw, wfbils)
     459      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:) :: wfevap
     460!$OMP THREADPRIVATE(wfevap)
    461461      REAL,ALLOCATABLE,SAVE,DIMENSION(:,:)  :: t2m, fluxlat, fsollw,evap_pot
    462462!$OMP THREADPRIVATE(t2m, fluxlat, fsollw,evap_pot)
     
    990990      ALLOCATE(t2m(klon, nbsrf), fluxlat(klon, nbsrf))
    991991      ALLOCATE(fsollw(klon, nbsrf))
    992       ALLOCATE(fsolsw(klon, nbsrf), wfbils(klon, nbsrf), wfbilo(klon, nbsrf))
    993       ALLOCATE(wfevap(klon, nbsrf), wfrain(klon,nbsrf), wfsnow(klon, nbsrf))
     992      ALLOCATE(fsolsw(klon, nbsrf), wfbils(klon, nbsrf))
     993      ALLOCATE(wfevap(klon, nbsrf))
    994994      ALLOCATE(evap_pot(klon, nbsrf))
    995995! FC
     
    13611361      DEALLOCATE(t2m, fluxlat)
    13621362      DEALLOCATE(fsollw, evap_pot)
    1363       DEALLOCATE(fsolsw, wfbils, wfbilo)
    1364       DEALLOCATE(wfevap,wfrain,wfsnow)
     1363      DEALLOCATE(fsolsw, wfbils)
     1364      DEALLOCATE(wfevap)
    13651365
    13661366      DEALLOCATE(pmflxr, pmflxs)
  • LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90

    r4724 r4737  
    354354       t2m, fluxlat,  &
    355355       fsollw, evap_pot,  &
    356        fsolsw, wfbils, wfbilo,  &
    357        wfevap, wfrain, wfsnow,  & 
     356       fsolsw, wfbils, wfevap,  &
    358357       prfl, psfl,bsfl, fraca, Vprecip,  &
    359358       zw2,  &
     
    30763075    !   frugs,     agesno,    fsollw,  fsolsw,
    30773076    !   d_ts,      fevap,     fluxlat, t2m,
    3078     !   wfbils,    wfbilo,    fluxt,   fluxu, fluxv,
     3077    !   wfbils,    fluxt,   fluxu, fluxv,
    30793078    !
    30803079    ! Certains ne sont pas utiliser du tout :
     
    31753174            z0m, z0h,     agesno,    fsollw,  fsolsw, &
    31763175            d_ts,      fevap,     fluxlat, t2m, &
    3177             wfbils, wfbilo, wfevap, wfrain, wfsnow, &
     3176            wfbils, wfevap, &
    31783177            fluxt,   fluxu,  fluxv, &
    31793178            dsens,     devap,     zxsnow, &
Note: See TracChangeset for help on using the changeset viewer.