Changeset 2537 for trunk/LMDZ.GENERIC


Ignore:
Timestamp:
Jun 16, 2021, 7:23:04 PM (4 years ago)
Author:
mturbet
Message:

add Surface Short Wave Radiation Spectrum in diagspecVI netcdf output file

Location:
trunk/LMDZ.GENERIC
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/README

    r2520 r2537  
    16601660- We also removed the old (obsolete) parameterizations (CKD and PPC) from the code
    16611661
    1662 
     1662==16/06/2021 == MT
     1663- Add the Surface SW spectrum in diagspecVI netcdf output file (useful as a diagnostic of surface radiation condition for e.g. habitability studies)
  • trunk/LMDZ.GENERIC/libf/phystd/callcorrk.F90

    r2470 r2537  
    1111          fluxsurf_sw,fluxsurfabs_sw,fluxtop_lw,               &
    1212          fluxabs_sw,fluxtop_dn,                               &
    13           OLR_nu,OSR_nu,                                       &
     13          OLR_nu,OSR_nu,GSR_nu,                                &
    1414          int_dtaui,int_dtauv,                                 &
    1515          tau_col,cloudfrac,totcloudfrac,                      &
     
    9191      REAL,INTENT(OUT) :: fluxabs_sw(ngrid)              ! SW flux absorbed by the planet (W/m2).
    9292      REAL,INTENT(OUT) :: fluxtop_dn(ngrid)              ! Incident top of atmosphere SW flux (W/m2).
    93       REAL,INTENT(OUT) :: OLR_nu(ngrid,L_NSPECTI)        ! Outgoing LW radition in each band (Normalized to the band width (W/m2/cm-1).
    94       REAL,INTENT(OUT) :: OSR_nu(ngrid,L_NSPECTV)        ! Outgoing SW radition in each band (Normalized to the band width (W/m2/cm-1).
     93      REAL,INTENT(OUT) :: OLR_nu(ngrid,L_NSPECTI)        ! Outgoing LW radiation in each band (Normalized to the band width (W/m2/cm-1).
     94      REAL,INTENT(OUT) :: OSR_nu(ngrid,L_NSPECTV)        ! Outgoing SW radiation in each band (Normalized to the band width (W/m2/cm-1).
     95      REAL,INTENT(OUT) :: GSR_nu(ngrid,L_NSPECTV)        ! Surface SW radiation in each band (Normalized to the band width (W/m2/cm-1).
    9596      REAL,INTENT(OUT) :: tau_col(ngrid)                 ! Diagnostic from aeropacity.
    9697      REAL,INTENT(OUT) :: albedo_equivalent(ngrid)       ! Spectrally Integrated Albedo. For Diagnostic. By MT2015
     
    285286      OLR_nu(:,:) = 0.
    286287      OSR_nu(:,:) = 0.
     288      GSR_nu(:,:) = 0.
    287289
    288290!--------------------------------------------------
     
    911913            end do
    912914            do nw=1,L_NSPECTV
    913                !GSR_nu(ig,nw)=nfluxgndv_nu(nw)
     915               GSR_nu(ig,nw)=nfluxgndv_nu(nw)/DWNV(nw)
    914916               OSR_nu(ig,nw)=nfluxoutv_nu(nw)/DWNV(nw) !JL Normalize to the bandwidth
    915917            end do
  • trunk/LMDZ.GENERIC/libf/phystd/phys_state_var_mod.F90

    r2485 r2537  
    6666      real,dimension(:,:),allocatable,save :: OLR_nu        ! Outgoing LW radiation in each band (Normalized to the band width (W/m2/cm-1)).
    6767      real,dimension(:,:),allocatable,save :: OSR_nu        ! Outgoing SW radiation in each band (Normalized to the band width (W/m2/cm-1)).
     68      real,dimension(:,:),allocatable,save :: GSR_nu        ! Surface SW (or 'Ground' SW) radiation in each band (Normalized to the band width (W/m2/cm-1)).
    6869      real,dimension(:,:),allocatable,save :: zdtlw         ! LW heating tendencies (K/s).
    6970      real,dimension(:,:),allocatable,save :: zdtsw         ! SW heating tendencies (K/s).
    7071      !real,dimension(:),allocatable,save :: sensibFlux      ! Turbulent flux given by the atmosphere to the surface (W.m-2).
    71 !$OMP THREADPRIVATE(OLR_nu,OSR_nu,zdtlw,zdtsw)
     72!$OMP THREADPRIVATE(OLR_nu,OSR_nu,GSR_nu,zdtlw,zdtsw)
    7273
    7374      real,dimension(:,:,:),allocatable,save :: int_dtauv   ! VI optical thickness of layers within narrowbands for diags ().
     
    179180        ALLOCATE(OLR_nu(klon,L_NSPECTI))
    180181        ALLOCATE(OSR_nu(klon,L_NSPECTV))
     182        ALLOCATE(GSR_nu(klon,L_NSPECTV))
    181183        ALLOCATE(int_dtaui(klon,klev,L_NSPECTI))
    182184        ALLOCATE(int_dtauv(klon,klev,L_NSPECTV))
     
    269271        DEALLOCATE(OLR_nu)
    270272        DEALLOCATE(OSR_nu)
     273        DEALLOCATE(GSR_nu)
    271274        DEALLOCATE(int_dtaui)
    272275        DEALLOCATE(int_dtauv)
  • trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90

    r2485 r2537  
    405405      real fluxsurfabs_sw1(ngrid)  ! For SW/LW flux.
    406406      real tau_col1(ngrid)                                                   ! For aerosol optical depth diagnostic.
    407       real OLR_nu1(ngrid,L_NSPECTI), OSR_nu1(ngrid,L_NSPECTV)                ! For Outgoing Radiation diagnostics.
     407      real OLR_nu1(ngrid,L_NSPECTI) ! Clear sky TOA LW radiation in each IR band
     408      real OSR_nu1(ngrid,L_NSPECTV) ! Clear sky TOA SW radiation in each VI band
     409      real GSR_nu1(ngrid,L_NSPECTV) ! Clear sky Surface SW radiation in each VI band
    408410      real int_dtaui1(ngrid,nlayer,L_NSPECTI),int_dtauv1(ngrid,nlayer,L_NSPECTV) ! For optical thickness diagnostics.
    409411      real tf, ntf
     
    905907                              zdtlw,zdtsw,fluxsurf_lw,fluxsurf_sw,                &
    906908                              fluxsurfabs_sw,fluxtop_lw,                          &
    907                               fluxabs_sw,fluxtop_dn,OLR_nu,OSR_nu,                &
     909                              fluxabs_sw,fluxtop_dn,OLR_nu,OSR_nu,GSR_nu,         &
    908910                              int_dtaui,int_dtauv,                                &
    909911                              tau_col,cloudfrac,totcloudfrac,                     &
     
    916918                  clearsky=.true.
    917919                  call callcorrk(ngrid,nlayer,pq,nq,qsurf,                           &
    918                                  albedo,albedo_equivalent1,emis,mu0,pplev,pplay,pt,   &
     920                                 albedo,albedo_equivalent1,emis,mu0,pplev,pplay,pt,  &
    919921                                 tsurf,fract,dist_star,aerosol,muvar,                &
    920922                                 zdtlw1,zdtsw1,fluxsurf_lw1,fluxsurf_sw1,            &
    921923                                 fluxsurfabs_sw1,fluxtop_lw1,                        &
    922                                  fluxabs_sw1,fluxtop_dn,OLR_nu1,OSR_nu1,             &
     924                                 fluxabs_sw1,fluxtop_dn,OLR_nu1,OSR_nu1,GSR_nu1,     &
    923925                                 int_dtaui1,int_dtauv1,                              &
    924926                                 tau_col1,cloudfrac,totcloudfrac,                    &
     
    941943                     zdtsw(ig,1:nlayer) = ntf*zdtsw1(ig,1:nlayer) + tf*zdtsw(ig,1:nlayer)
    942944
    943                      OSR_nu(ig,1:L_NSPECTV) = ntf*OSR_nu1(ig,1:L_NSPECTV) + tf*OSR_nu(ig,1:L_NSPECTV)                       
     945                     OSR_nu(ig,1:L_NSPECTV) = ntf*OSR_nu1(ig,1:L_NSPECTV) + tf*OSR_nu(ig,1:L_NSPECTV)       
     946                     GSR_nu(ig,1:L_NSPECTV) = ntf*GSR_nu1(ig,1:L_NSPECTV) + tf*GSR_nu(ig,1:L_NSPECTV)                 
    944947                     OLR_nu(ig,1:L_NSPECTI) = ntf*OLR_nu1(ig,1:L_NSPECTI) + tf*OLR_nu(ig,1:L_NSPECTI)                       
    945948                     if (diagdtau) then
     
    23142317         call writediagspecIR(ngrid,"OLR3D","OLR(lon,lat,band)","W/m^2/cm^-1",3,OLR_nu)
    23152318         call writediagspecVI(ngrid,"OSR3D","OSR(lon,lat,band)","W/m^2/cm^-1",3,OSR_nu)
     2319         call writediagspecVI(ngrid,"GSR3D","GSR(lon,lat,band)","W/m^2/cm^-1",3,GSR_nu)
    23162320      endif
    23172321
Note: See TracChangeset for help on using the changeset viewer.