RADLSW Subroutine

subroutine RADLSW(KIDIA, KFDIA, KLON, KLEV, KMODE, KAER, PRII0, PAER, PALBD, PALBP, PAPH, PAP, PCCNL, PCCNO, PCCO2, PCLFR, PDP, PEMIS, PEMIW, PLSM, PMU0, POZON, PQ, PQIWP, PQLWP, PQS, PQRAIN, PRAINT, PTH, PT, PTS, PNBAS, PNTOP, PREF_LIQ, PREF_ICE, PEMIT, PFCT, PFLT, PFCS, PFLS, PFRSOD, PSUDU, PUVDF, PPARF, PPARCF, PTINCF, PSFSWDIR, PSFSWDIF, PFSDNN, PFSDNV, LRDUST, PPIZA_DST, PCGA_DST, PTAUREL_DST, PTAU_LW, PFLUX, PFLUC, PFSDN, PFSUP, PFSCDN, PFSCUP, PTOAB, PTOACB)

Uses

  • proc~~radlsw~2~~UsesGraph proc~radlsw~2 RADLSW module~parrrtm~3 PARRRTM proc~radlsw~2->module~parrrtm~3 module~yomhook yomhook proc~radlsw~2->module~yomhook module~yomlun_ifsaux YOMLUN_IFSAUX proc~radlsw~2->module~yomlun_ifsaux module~yoerrtwn YOERRTWN proc~radlsw~2->module~yoerrtwn module~yoerdu YOERDU proc~radlsw~2->module~yoerdu module~parkind1~2 PARKIND1 proc~radlsw~2->module~parkind1~2 module~yoelw YOELW proc~radlsw~2->module~yoelw module~yomct3 YOMCT3 proc~radlsw~2->module~yomct3 module~yoesw YOESW proc~radlsw~2->module~yoesw module~yomcst~3 YOMCST proc~radlsw~2->module~yomcst~3 module~write_field_phy write_field_phy proc~radlsw~2->module~write_field_phy module~clesphys_mod_h~2 clesphys_mod_h proc~radlsw~2->module~clesphys_mod_h~2 module~yoephli YOEPHLI proc~radlsw~2->module~yoephli module~yoerad yoerad proc~radlsw~2->module~yoerad module~parrrtm~3->module~parkind1~2 module~yomlun_ifsaux->module~parkind1~2 module~yoerrtwn->module~parkind1~2 module~yoerdu->module~parkind1~2 module~yoelw->module~parkind1~2 module~yomct3->module~parkind1~2 module~yoesw->module~parkind1~2 module~yomcst~3->module~parkind1~2 module~yoephli->module~parkind1~2

*** RADLSW - INTERFACE TO ECMWF LW AND SW RADIATION SCHEMES

  • INTERFACE. ----------

include "clesphys.h" include "clesrrtm.h" COMMON YOETHF DERIVED CONSTANTS SPECIFIC TO ECMWF THERMODYNAMICS

 *R__ES*   *CONSTANTS USED FOR COMPUTATION OF SATURATION
            MIXING RATIO OVER LIQUID WATER(*R_LES*) OR
            ICE(*R_IES*).
 *RVTMP2*  *RVTMP2=RCPV/RCPD-1.
 *RHOH2O*  *DENSITY OF LIQUID WATER.   (RATM/100.)

     1.     SET-UP INPUT QUANTITIES FOR RADIATION
             -------------------------------------

     1.1    INITIALIZE VARIOUS FIELDS
             -------------------------

**

     2.     CLOUD AND AEROSOL PARAMETERS
             ----------------------------

     2.7    DIFFUSIVITY FACTOR OR SATELLITE VIEWING ANGLE
             ---------------------------------------------

     3.     CALL LONGWAVE RADIATION CODE
             ----------------------------

     3.1    FULL LONGWAVE RADIATION COMPUTATIONS
             ------------------------------------


     3.2    FULL LONGWAVE RADIATION COMPUTATIONS - RRTM
             ------------------------------------   ----









     4.     CALL SHORTWAVE RADIATION CODE
             -----------------------------

     5.     FILL UP THE MODEL NET LW AND SW RADIATIVE FLUXES
             ------------------------------------------------

Arguments

Type IntentOptional Attributes Name
integer(kind=JPIM), intent(in) :: KIDIA
integer(kind=JPIM), intent(in) :: KFDIA
integer(kind=JPIM), intent(in) :: KLON
integer(kind=JPIM), intent(in) :: KLEV
integer(kind=JPIM), intent(in) :: KMODE
integer(kind=JPIM), intent(in) :: KAER
real(kind=JPRB), intent(in) :: PRII0
real(kind=JPRB), intent(in) :: PAER(KLON,6,KLEV)
real(kind=JPRB), intent(in) :: PALBD(KLON,NSW)
real(kind=JPRB), intent(in) :: PALBP(KLON,NSW)
real(kind=JPRB), intent(in) :: PAPH(KLON,KLEV+1)
real(kind=JPRB), intent(in) :: PAP(KLON,KLEV)
real(kind=JPRB), intent(in) :: PCCNL(KLON)
real(kind=JPRB), intent(in) :: PCCNO(KLON)
real(kind=JPRB), intent(in) :: PCCO2
real(kind=JPRB), intent(in) :: PCLFR(KLON,KLEV)
real(kind=JPRB), intent(in) :: PDP(KLON,KLEV)
real(kind=JPRB), intent(in) :: PEMIS(KLON)
real(kind=JPRB), intent(in) :: PEMIW(KLON)
real(kind=JPRB), intent(in) :: PLSM(KLON)
real(kind=JPRB), intent(in) :: PMU0(KLON)
real(kind=JPRB), intent(in) :: POZON(KLON,KLEV)
real(kind=JPRB), intent(in) :: PQ(KLON,KLEV)
real(kind=JPRB), intent(in) :: PQIWP(KLON,KLEV)
real(kind=JPRB), intent(in) :: PQLWP(KLON,KLEV)
real(kind=JPRB), intent(in) :: PQS(KLON,KLEV)
real(kind=JPRB) :: PQRAIN(KLON,KLEV)
real(kind=JPRB) :: PRAINT(KLON,KLEV)
real(kind=JPRB), intent(in) :: PTH(KLON,KLEV+1)
real(kind=JPRB), intent(in) :: PT(KLON,KLEV)
real(kind=JPRB), intent(in) :: PTS(KLON)
real(kind=JPRB), intent(in) :: PNBAS(KLON)
real(kind=JPRB), intent(in) :: PNTOP(KLON)
real(kind=JPRB), intent(in) :: PREF_LIQ(KLON,KLEV)
real(kind=JPRB), intent(in) :: PREF_ICE(KLON,KLEV)
real(kind=JPRB), intent(out) :: PEMIT(KLON)
real(kind=JPRB), intent(out) :: PFCT(KLON,KLEV+1)
real(kind=JPRB), intent(out) :: PFLT(KLON,KLEV+1)
real(kind=JPRB), intent(out) :: PFCS(KLON,KLEV+1)
real(kind=JPRB), intent(out) :: PFLS(KLON,KLEV+1)
real(kind=JPRB), intent(out) :: PFRSOD(KLON)
real(kind=JPRB), intent(out) :: PSUDU(KLON)
real(kind=JPRB), intent(out) :: PUVDF(KLON)
real(kind=JPRB), intent(out) :: PPARF(KLON)
real(kind=JPRB), intent(out) :: PPARCF(KLON)
real(kind=JPRB), intent(out) :: PTINCF(KLON)
real(kind=JPRB), intent(out) :: PSFSWDIR(KLON,NSW)
real(kind=JPRB), intent(out) :: PSFSWDIF(KLON,NSW)
real(kind=JPRB), intent(out) :: PFSDNN(KLON)
real(kind=JPRB), intent(out) :: PFSDNV(KLON)
logical, intent(in) :: LRDUST
real(kind=JPRB), intent(in) :: PPIZA_DST(KLON,KLEV,NSW)
real(kind=JPRB), intent(in) :: PCGA_DST(KLON,KLEV,NSW)
real(kind=JPRB), intent(in) :: PTAUREL_DST(KLON,KLEV,NSW)
real(kind=JPRB), intent(in) :: PTAU_LW(KLON,KLEV,NLW)
real(kind=JPRB), intent(out) :: PFLUX(KLON,2,KLEV+1)
real(kind=JPRB), intent(out) :: PFLUC(KLON,2,KLEV+1)
real(kind=JPRB), intent(out) :: PFSDN(KLON,KLEV+1)
real(kind=JPRB), intent(out) :: PFSUP(KLON,KLEV+1)
real(kind=JPRB), intent(out) :: PFSCDN(KLON,KLEV+1)
real(kind=JPRB), intent(out) :: PFSCUP(KLON,KLEV+1)

0.1 ARGUMENTS. ---------- ==== COMPUTED IN RADLSW ===


0.2 LOCAL ARRAYS. -------------


real(kind=JPRB), intent(out) :: PTOAB(klon,NLW)
real(kind=JPRB), intent(out) :: PTOACB(klon,NLW)

Calls

proc~~radlsw~2~~CallsGraph proc~radlsw~2 RADLSW proc~dr_hook dr_hook proc~radlsw~2->proc~dr_hook gp_per_lwband gp_per_lwband proc~radlsw~2->gp_per_lwband proc~writefield_phy WriteField_phy proc~radlsw~2->proc~writefield_phy interface~gather gather proc~writefield_phy->interface~gather interface~grid1dto2d_glo grid1dTo2d_glo proc~writefield_phy->interface~grid1dto2d_glo interface~writefield WriteField proc~writefield_phy->interface~writefield proc~gather_l gather_l interface~gather->proc~gather_l proc~gather_i3 gather_i3 interface~gather->proc~gather_i3 proc~gather_r1 gather_r1 interface~gather->proc~gather_r1 proc~gather_l3 gather_l3 interface~gather->proc~gather_l3 proc~gather_r3 gather_r3 interface~gather->proc~gather_r3 proc~gather_r gather_r interface~gather->proc~gather_r proc~gather_r2 gather_r2 interface~gather->proc~gather_r2 proc~gather_l2 gather_l2 interface~gather->proc~gather_l2 proc~gather_i1 gather_i1 interface~gather->proc~gather_i1 proc~gather_i2 gather_i2 interface~gather->proc~gather_i2 proc~gather_l1 gather_l1 interface~gather->proc~gather_l1 proc~gather_i gather_i interface~gather->proc~gather_i proc~grid1dto2d_glo_i grid1dTo2d_glo_i interface~grid1dto2d_glo->proc~grid1dto2d_glo_i proc~grid1dto2d_glo_r3 grid1dTo2d_glo_r3 interface~grid1dto2d_glo->proc~grid1dto2d_glo_r3 proc~grid1dto2d_glo_l3 grid1dTo2d_glo_l3 interface~grid1dto2d_glo->proc~grid1dto2d_glo_l3 proc~grid1dto2d_glo_l2 grid1dTo2d_glo_l2 interface~grid1dto2d_glo->proc~grid1dto2d_glo_l2 proc~grid1dto2d_glo_i3 grid1dTo2d_glo_i3 interface~grid1dto2d_glo->proc~grid1dto2d_glo_i3 proc~grid1dto2d_glo_i2 grid1dTo2d_glo_i2 interface~grid1dto2d_glo->proc~grid1dto2d_glo_i2 proc~grid1dto2d_glo_l grid1dTo2d_glo_l interface~grid1dto2d_glo->proc~grid1dto2d_glo_l proc~grid1dto2d_glo_i1 grid1dTo2d_glo_i1 interface~grid1dto2d_glo->proc~grid1dto2d_glo_i1 proc~grid1dto2d_glo_r2 grid1dTo2d_glo_r2 interface~grid1dto2d_glo->proc~grid1dto2d_glo_r2 proc~grid1dto2d_glo_r1 grid1dTo2d_glo_r1 interface~grid1dto2d_glo->proc~grid1dto2d_glo_r1 proc~grid1dto2d_glo_l1 grid1dTo2d_glo_l1 interface~grid1dto2d_glo->proc~grid1dto2d_glo_l1 proc~grid1dto2d_glo_r grid1dTo2d_glo_r interface~grid1dto2d_glo->proc~grid1dto2d_glo_r interface~gather_omp gather_omp proc~gather_l->interface~gather_omp interface~gather_mpi gather_mpi proc~gather_l->interface~gather_mpi proc~gather_i3->interface~gather_omp proc~gather_i3->interface~gather_mpi proc~gather_r1->interface~gather_omp proc~gather_r1->interface~gather_mpi proc~gather_l3->interface~gather_omp proc~gather_l3->interface~gather_mpi proc~gather_r3->interface~gather_omp proc~gather_r3->interface~gather_mpi proc~gather_r->interface~gather_omp proc~gather_r->interface~gather_mpi proc~gather_r2->interface~gather_omp proc~gather_r2->interface~gather_mpi proc~gather_l2->interface~gather_omp proc~gather_l2->interface~gather_mpi proc~gather_i1->interface~gather_omp proc~gather_i1->interface~gather_mpi proc~gather_i2->interface~gather_omp proc~gather_i2->interface~gather_mpi proc~gather_l1->interface~gather_omp proc~gather_l1->interface~gather_mpi proc~gather_i->interface~gather_omp proc~gather_i->interface~gather_mpi proc~gather_mpi_i3 gather_mpi_i3 interface~gather_mpi->proc~gather_mpi_i3 proc~gather_mpi_r3 gather_mpi_r3 interface~gather_mpi->proc~gather_mpi_r3 proc~gather_mpi_l3 gather_mpi_l3 interface~gather_mpi->proc~gather_mpi_l3 proc~gather_mpi_i gather_mpi_i interface~gather_mpi->proc~gather_mpi_i proc~gather_mpi_i2 gather_mpi_i2 interface~gather_mpi->proc~gather_mpi_i2 proc~gather_mpi_l1 gather_mpi_l1 interface~gather_mpi->proc~gather_mpi_l1 proc~gather_mpi_l gather_mpi_l interface~gather_mpi->proc~gather_mpi_l proc~gather_mpi_l2 gather_mpi_l2 interface~gather_mpi->proc~gather_mpi_l2 proc~gather_mpi_r gather_mpi_r interface~gather_mpi->proc~gather_mpi_r proc~gather_mpi_i1 gather_mpi_i1 interface~gather_mpi->proc~gather_mpi_i1 proc~gather_mpi_r2 gather_mpi_r2 interface~gather_mpi->proc~gather_mpi_r2 proc~gather_mpi_r1 gather_mpi_r1 interface~gather_mpi->proc~gather_mpi_r1 proc~gather_mpi_igen gather_mpi_igen proc~gather_mpi_i3->proc~gather_mpi_igen proc~gather_mpi_rgen gather_mpi_rgen proc~gather_mpi_r3->proc~gather_mpi_rgen proc~gather_mpi_lgen gather_mpi_lgen proc~gather_mpi_l3->proc~gather_mpi_lgen proc~gather_mpi_i->proc~gather_mpi_igen proc~gather_mpi_i2->proc~gather_mpi_igen proc~gather_mpi_l1->proc~gather_mpi_lgen proc~gather_mpi_l->proc~gather_mpi_lgen proc~gather_mpi_l2->proc~gather_mpi_lgen proc~gather_mpi_r->proc~gather_mpi_rgen proc~gather_mpi_i1->proc~gather_mpi_igen proc~gather_mpi_r2->proc~gather_mpi_rgen proc~gather_mpi_r1->proc~gather_mpi_rgen proc~mpi_gatherv MPI_GATHERV proc~gather_mpi_igen->proc~mpi_gatherv proc~gather_mpi_rgen->proc~mpi_gatherv proc~gather_mpi_lgen->proc~mpi_gatherv proc~lmdz_mpi_wrapper_abort lmdz_mpi_wrapper_abort proc~mpi_gatherv->proc~lmdz_mpi_wrapper_abort

Contents


Common Blocks

Type Attributes Name Initial
real :: R2ES
real :: R3LES
real :: R3IES
real :: R4LES
real :: R4IES
real :: R5LES
real :: R5IES
real :: RVTMP2
real :: RHOH2O
real :: R5ALVCP
real :: R5ALSCP
real :: RALVDCP
real :: RALSDCP
real :: RALFDCP
real :: RTWAT
real :: RTBER
real :: RTBERCU
real :: RTICE
real :: RTICECU
real :: RTWAT_RTICE_R
real :: RTWAT_RTICECU_R
real :: RKOOP1
real :: RKOOP2
real :: OK_BAD_ECMWF_THERMO