Changeset 3048 for LMDZ6/trunk/libf


Ignore:
Timestamp:
Oct 27, 2017, 6:14:12 PM (7 years ago)
Author:
musat
Message:

Set up lwoff configuration : add ok_lwoff=y to activate it.
Add solbnd CMIP6 output.
Enable 3D outputs of SW/LW total sky and clear sky.
IM

Location:
LMDZ6/trunk/libf/phylmd
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/clesphys.h

    r2989 r3048  
    1111       LOGICAL ok_limitvrai
    1212       LOGICAL ok_all_xml
     13       LOGICAL ok_lwoff
    1314       INTEGER nbapp_rad, iflag_con, nbapp_cv, nbapp_wk, iflag_ener_conserv
    1415       REAL co2_ppm, co2_ppm0, solaire
     
    137138     &     , iflag_ice_thermo, ok_gwd_rando, NSW, iflag_albedo          &
    138139     &     , ok_chlorophyll,ok_conserv_q, adjust_tropopause             &
    139      &     , ok_daily_climoz, ok_all_xml                                &
     140     &     , ok_daily_climoz, ok_all_xml, ok_lwoff                      &
    140141     &     , iflag_phytrac
    141142     
  • LMDZ6/trunk/libf/phylmd/conf_phys_m.F90

    r3022 r3048  
    9191    LOGICAL, SAVE       :: ok_newmicro_omp
    9292    LOGICAL, SAVE       :: ok_all_xml_omp
     93    LOGICAL, SAVE       :: ok_lwoff_omp
    9394    LOGICAL, SAVE       :: ok_journe_omp, ok_mensuel_omp, ok_instan_omp, ok_hf_omp       
    9495    LOGICAL, SAVE       :: ok_LES_omp   
     
    294295    ok_all_xml_omp = .FALSE.
    295296    CALL getin('ok_all_xml', ok_all_xml_omp)
     297
     298    !
     299    !Config Key  = ok_lwoff
     300    !Config Desc = inhiber l effet radiatif LW des nuages
     301    !Config Def  = .FALSE.
     302    !Config Help =
     303    !
     304    ok_lwoff_omp = .FALSE.
     305    CALL getin('ok_lwoff', ok_lwoff_omp)
    296306    !
    297307
     
    22452255
    22462256    ok_all_xml = ok_all_xml_omp
     2257    ok_lwoff = ok_lwoff_omp
    22472258    ok_newmicro = ok_newmicro_omp
    22482259    ok_journe = ok_journe_omp
     
    23262337    cvl_corr = cvl_corr_omp
    23272338    ok_lic_melt = ok_lic_melt_omp
    2328     ok_lic_cond = ok_lic_cond_omp
    23292339    f_cdrag_ter=f_cdrag_ter_omp
    23302340    f_cdrag_oce=f_cdrag_oce_omp
     
    25042514    write(lunout,*)' cvl_corr=', cvl_corr
    25052515    write(lunout,*)'ok_lic_melt=', ok_lic_melt
    2506     write(lunout,*)'ok_lic_cond=', ok_lic_cond
    25072516    write(lunout,*)'cycle_diurne=',cycle_diurne
    25082517    write(lunout,*)'soil_model=',soil_model
  • LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90

    r3003 r3048  
    14171417  TYPE(ctrl_out), SAVE :: o_lcc3dstra = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11, 11/), &
    14181418    'lcc3dstra', 'Stratiform cloud liquid fraction', '1', (/ ('', i=1, 10) /))
     1419  TYPE(ctrl_out), SAVE :: o_solbnd = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11, 11/), &
     1420    'solbnd', 'Top-of-Atmosphere Solar Insolation for each band', 'W m-2', (/ ('', i=1, 10) /))
    14191421  TYPE(ctrl_out), SAVE :: o_stratomask = ctrl_out((/ 2,  6, 10, 10, 10, 10, 11, 11, 11, 11/), &
    14201422    'stratomask', 'Stratospheric fraction', '1', (/ ('', i=1, 10) /))
  • LMDZ6/trunk/libf/phylmd/phys_output_mod.F90

    r3003 r3048  
    137137    REAL :: ini_heure
    138138#endif
     139    INTEGER                         :: ISW
     140    REAL, DIMENSION(NSW)            :: wl1_sun, wl2_sun !wavelength bounds (in um) for SW
     141    REAL, DIMENSION(NSW)            :: wn1_sun, wn2_sun !wavenumber bounds (in m-1) for SW
     142    REAL, DIMENSION(NSW)            :: spectband  !mean wavenumb. of each sp.band
     143    REAL, DIMENSION(NSW,2)          :: spbnds_sun !bounds of spectband
    139144
    140145    WRITE(lunout,*) 'Debut phys_output_mod.F90'
     
    354359     CALL wxios_add_vaxis("Alt", &
    355360            levmax(iff) - levmin(iff) + 1, pseudoalt)
     361
     362    IF (NSW.EQ.6) THEN
     363!
     364!wl1_sun: minimum bound of wavelength (in um)
     365!
     366      wl1_sun(1)=0.180
     367      wl1_sun(2)=0.250
     368      wl1_sun(3)=0.440
     369      wl1_sun(4)=0.690
     370      wl1_sun(5)=1.190
     371      wl1_sun(6)=2.380
     372!
     373!wl2_sun: maximum bound of wavelength (in um)
     374!
     375      wl2_sun(1)=0.250
     376      wl2_sun(2)=0.440
     377      wl2_sun(3)=0.690
     378      wl2_sun(4)=1.190
     379      wl2_sun(5)=2.380
     380      wl2_sun(6)=4.000
     381!
     382    ELSE IF(NSW.EQ.2) THEN
     383!
     384!wl1_sun: minimum bound of wavelength (in um)
     385!
     386      wl1_sun(1)=0.250
     387      wl1_sun(2)=0.690
     388!
     389!wl2_sun: maximum bound of wavelength (in um)
     390!
     391      wl2_sun(1)=0.690
     392      wl2_sun(2)=4.000
     393    ENDIF
     394
     395    DO ISW=1, NSW
     396     wn1_sun(ISW)=1.e+6/wl1_sun(ISW)
     397     wn2_sun(ISW)=1.e+6/wl2_sun(ISW)
     398     spbnds_sun(ISW,1)=wn2_sun(ISW)
     399     spbnds_sun(ISW,2)=wn1_sun(ISW)
     400     spectband(ISW)=(wn1_sun(ISW)+wn2_sun(ISW))/2
     401    ENDDO
     402!
     403!!! ajout axe vertical spectband : solar band number
     404    CALL wxios_add_vaxis("spectband", NSW, spectband, positif='down')
    356405   ELSE
    357406    ! NMC files
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r3003 r3048  
    119119         o_swtoacf_zero, o_swsrfcf_zero, &
    120120         o_topswai, o_solswai, o_toplwai, o_sollwai, o_scdnc, &
    121          o_cldncl, o_reffclws, o_reffclwc, o_stratomask,&
     121         o_cldncl, o_reffclws, o_reffclwc, o_solbnd, o_stratomask,&
    122122         o_cldnvi, o_lcc, o_lcc3d, o_lcc3dcon, &
    123123         o_lcc3dstra, o_reffclwtop, o_ec550aer, &
     
    389389    REAL, DIMENSION (klon,klev) :: zx_tmp_fi3d, zpt_conv
    390390    REAL, DIMENSION (klon,klev+1) :: zx_tmp_fi3d1
     391    REAL, DIMENSION (klon,NSW) :: zx_tmp_fi3dsp
    391392    CHARACTER (LEN=4)              :: bb2
    392393    INTEGER, DIMENSION(nbp_lon*nbp_lat)  :: ndex2d
     
    13831384       CALL histwrite_phy(o_zfull,zphi/RG)
    13841385
     1386!solbnd begin
     1387#ifdef CPP_RRTM
     1388      IF (iflag_rrtm.EQ.1) THEN
     1389       IF (vars_defined) THEN
     1390        DO ISW=1, NSW
     1391          zx_tmp_fi3dsp(:,ISW) = swdn(:,klevp1)*swradcorr(:)*RSUN(ISW)
     1392        ENDDO
     1393        CALL histwrite_phy(o_solbnd, zx_tmp_fi3dsp)
     1394       ENDIF
     1395      ENDIF
     1396#endif
     1397
     1398!solbnd end
     1399
    13851400       IF (flag_aerosol_strat.EQ.2) THEN
    13861401         CALL histwrite_phy(o_stratomask, stratomask)
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r3029 r3048  
    11051105    REAL, dimension(klon, klev) :: cldfrarad   ! fraction nuageuse
    11061106
     1107    !lwoff=y : offset LW CRE for radiation code and other schemes
     1108    REAL, SAVE :: betalwoff
     1109    !OMP THREADPRIVATE(betalwoff)
     1110!
    11071111    INTEGER :: nbtr_tmp ! Number of tracer inside concvl
    11081112    REAL, dimension(klon,klev) :: sh_in ! Specific humidity entering in phytrac
     
    17881792       WRITE(*,*)'lat2_beta=',lat2_beta
    17891793       WRITE(*,*)'mskocean_beta=',mskocean_beta
     1794
     1795      !lwoff=y : offset LW CRE for radiation code and other schemes
     1796      !lwoff=y : betalwoff=1.
     1797      betalwoff=0.
     1798      IF (ok_lwoff) THEN
     1799         betalwoff=1.
     1800      ENDIF
     1801      WRITE(*,*)'ok_lwoff=',ok_lwoff
     1802      !
     1803      !lwoff=y to begin only sollw and sollwdown are set up to CS values
     1804      sollw = sollw + betalwoff * (sollw0 - sollw)
     1805      sollwdown(:)= sollwdown(:) + betalwoff *(-1.*ZFLDN0(:,1) - &
     1806                    sollwdown(:))
    17901807    ENDIF
    17911808    !
     
    36033620          ! global
    36043621          !
     3622!IM 251017 begin
     3623                print*,'physiq betaCRF global zdtime=',zdtime
     3624!IM 251017 end
    36053625          DO k=1, klev
    36063626             DO i=1, klon
     
    37173737             print *,' ->radlwsw, number 1 '
    37183738          ENDIF
     3739
    37193740          !
    37203741          CALL radlwsw &
     
    37333754               tau_aero_lw_rrtm, &
    37343755               cldtaupirad,new_aod, &
     3756!              zqsat, flwcrad, fiwcrad, &
    37353757               zqsat, flwc, fiwc, &
    37363758               ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, &
     
    37553777               ZSWFT0_i, ZFSDN0, ZFSUP0)
    37563778
     3779          !lwoff=y, betalwoff=1. : offset LW CRE for radiation code and other
     3780          !schemes
     3781          toplw = toplw + betalwoff * (toplw0 - toplw)
     3782          sollw = sollw + betalwoff * (sollw0 - sollw)
     3783          lwdn = lwdn + betalwoff * (lwdn0 - lwdn)
     3784          lwup = lwup + betalwoff * (lwup0 - lwup)
     3785          sollwdown(:)= sollwdown(:) + betalwoff *(-1.*ZFLDN0(:,1) - &
     3786                        sollwdown(:))
     3787          cool = cool + betalwoff * (cool0 - cool)
     3788 
    37573789#ifndef CPP_XIOS
    37583790          !--OB 30/05/2016 modified 21/10/2016
     
    38053837                     tau_aero_lw_rrtm, &
    38063838                     cldtaupi,new_aod, &
     3839!                    zqsat, flwcrad, fiwcrad, &
    38073840                     zqsat, flwc, fiwc, &
    38083841                     ref_liq, ref_ice, ref_liq_pi, ref_ice_pi, &
     
    38263859                     ZLWFT0_i, ZFLDN0, ZFLUP0, &
    38273860                     ZSWFT0_i, ZFSDN0, ZFSUP0)
    3828           endif
    3829           !
     3861          endif !ok_4xCO2atm
    38303862       ENDIF ! aerosol_couple
    38313863       itaprad = 0
Note: See TracChangeset for help on using the changeset viewer.