<p><b>laura@ucar.edu</b> 2013-03-13 14:14:22 -0600 (Wed, 13 Mar 2013)</p><p>Updated the shortwave radiation driver so that it can call the RRTMG shortwave radiation code updated to WRF version 3.4.1. Results are exactly the same as those obtained with the RRTM shortwave radiation code from WRF version 3.2.1.<br>
</p><hr noshade><pre><font color="gray">Modified: branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_driver_radiation_sw.F
===================================================================
--- branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_driver_radiation_sw.F        2013-03-13 20:11:58 UTC (rev 2606)
+++ branches/atmos_physics/src/core_atmos_physics/mpas_atmphys_driver_radiation_sw.F        2013-03-13 20:14:22 UTC (rev 2607)
@@ -21,6 +21,14 @@
           init_radiation_sw,       &amp;
           radconst
 
+!add-ons and modifications to sourcecode:
+! * removed commented out sourcecode left from revision 1721. removed commented out calls to
+!   subroutines rrtmg_swrad and camrad.
+! * updated call to subroutine rrtmg_swrad in order to use module_ra_rrtmg_sw.F from WRF 3.4.1
+!   instead of WRF 3.2.1. Results are unchanged.
+!   Laura D. Fowler (birch.ucar.edu) / 2013-03-13.
+
+
  integer,private:: i,j,k,n
 
  contains
@@ -63,6 +71,15 @@
  radiation_sw_select: select case (trim(radt_sw_scheme))
 
     case(&quot;rrtmg_sw&quot;)
+       if(.not.allocated(alswvisdir_p) ) allocate(alswvisdir_p(ims:ime,jms:jme)         )
+       if(.not.allocated(alswvisdif_p) ) allocate(alswvisdif_p(ims:ime,jms:jme)         )
+       if(.not.allocated(alswnirdir_p) ) allocate(alswnirdir_p(ims:ime,jms:jme)         )
+       if(.not.allocated(alswnirdif_p) ) allocate(alswnirdif_p(ims:ime,jms:jme)         )
+       if(.not.allocated(swvisdir_p)   ) allocate(swvisdir_p(ims:ime,jms:jme)           )
+       if(.not.allocated(swvisdif_p)   ) allocate(swvisdif_p(ims:ime,jms:jme)           )
+       if(.not.allocated(swnirdir_p)   ) allocate(swnirdir_p(ims:ime,jms:jme)           )
+       if(.not.allocated(swnirdif_p)   ) allocate(swnirdif_p(ims:ime,jms:jme)           )
+
        if(.not.allocated(swdnflx_p)    ) allocate(swdnflx_p(ims:ime,kms:kme+1,jms:jme)  )
        if(.not.allocated(swdnflxc_p)   ) allocate(swdnflxc_p(ims:ime,kms:kme+1,jms:jme) )
        if(.not.allocated(swupflx_p)    ) allocate(swupflx_p(ims:ime,kms:kme+1,jms:jme)  )
@@ -146,6 +163,11 @@
  radiation_sw_select: select case (trim(radt_sw_scheme))
 
     case(&quot;rrtmg_sw&quot;)
+       if(allocated(alswvisdir_p) ) deallocate(alswvisdir_p )
+       if(allocated(alswvisdif_p) ) deallocate(alswvisdif_p )
+       if(allocated(alswnirdir_p) ) deallocate(alswnirdir_p )
+       if(allocated(alswnirdif_p) ) deallocate(alswnirdif_p )
+
        if(allocated(swdnflx_p)    ) deallocate(swdnflx_p    )
        if(allocated(swdnflxc_p)   ) deallocate(swdnflxc_p   )
        if(allocated(swupflx_p)    ) deallocate(swupflx_p    )
@@ -500,90 +522,64 @@
 #if defined(do_hydrostatic_pressure)
 !... REARRANGED CALL USING HYDROSTATIC PRESSURE:
        call rrtmg_swrad( &amp;
-                p3d        = pres_hyd_p   , p8w       = pres2_hyd_p, pi3d      = pi_p      , &amp;
-                t3d        = t_p          , t8w       = t2_p       , rho3d     = rho_p     , &amp;
-                rthratensw = rthratensw_p , swupt     = swupt_p    , swuptc    = swuptc_p  , &amp;
-                swdnt      = swdnt_p      , swdntc    = swdntc_p   , swupb     = swupb_p   , &amp;
-                swupbc     = swupbc_p     , swdnb     = swdnb_p    , swdnbc    = swdnbc_p  , &amp;
-                swcf       = swcf_p       , gsw       = gsw_p      , xtime     = xtime_m   , &amp;
-                gmt        = gmt          , xlat      = xlat_p     , xlong     = xlon_p    , &amp;
-                radt       = radt         , degrad    = degrad     , declin    = declin    , &amp;
-                coszr      = coszr_p      , julday    = julday     , solcon    = solcon    , &amp;
-                albedo     = sfc_albedo_p , tsk       = tsk_p      , dz8w      = dz_p      , &amp;
-                cldfra3d   = cldfrac_p    , r         = R_d        , g         = g         , &amp;
-                icloud     = icloud       , warm_rain = warm_rain  , f_ice_phy = f_ice     , &amp;
-                f_rain_phy = f_rain       , xland     = xland_p    , xice      = xice_p    , &amp;
-                snow       = snow_p       , qv3d      = qv_p       , qc3d      = qc_p      , &amp;
-                qr3d       = qr_p         , qi3d      = qi_p       , qs3d      = qs_p      , &amp;
-                qg3d       = qg_p         , f_qv      = f_qv       , f_qc      = f_qc      , &amp;
-                f_qr       = f_qr         , f_qi      = f_qi       , f_qs      = f_qs      , &amp;
-                f_qg       = f_qg         ,                                                  &amp;
+                p3d        = pres_hyd_p   , p8w        = pres2_hyd_p  , pi3d       = pi_p        ,&amp;
+                t3d        = t_p          , t8w        = t2_p         , rho3d      = rho_p       ,&amp;
+                rthratensw = rthratensw_p , swupt      = swupt_p      , swuptc     = swuptc_p    ,&amp;
+                swdnt      = swdnt_p      , swdntc     = swdntc_p     , swupb      = swupb_p     ,&amp;
+                swupbc     = swupbc_p     , swdnb      = swdnb_p      , swdnbc     = swdnbc_p    ,&amp;
+                swcf       = swcf_p       , gsw        = gsw_p        , xtime      = xtime_m     ,&amp;
+                gmt        = gmt          , xlat       = xlat_p       , xlong      = xlon_p      ,&amp;
+                radt       = radt         , degrad     = degrad       , declin     = declin      ,&amp;
+                coszr      = coszr_p      , julday     = julday       , solcon     = solcon      ,&amp;
+                albedo     = sfc_albedo_p , tsk        = tsk_p        , dz8w       = dz_p        ,&amp;
+                cldfra3d   = cldfrac_p    , r          = R_d          , g          = g           ,&amp;
+                icloud     = icloud       , warm_rain  = warm_rain    , f_ice_phy  = f_ice       ,&amp;
+                f_rain_phy = f_rain       , xland      = xland_p      , xice       = xice_p      ,&amp;
+                snow       = snow_p       , qv3d       = qv_p         , qc3d       = qc_p        ,&amp;
+                qr3d       = qr_p         , qi3d       = qi_p         , qs3d       = qs_p        ,&amp;
+                qg3d       = qg_p         , sf_surface_physics = sf_surface_physics ,             &amp; 
                 !begin optional arguments:
-                swupflx    = swupflx_p    , swupflxc  = swupflxc_p , swdnflx   = swdnflx_p , &amp;
-                swdnflxc   = swdnflxc_p   ,                                                  &amp;
+                f_qv       = f_qv         , f_qc       = f_qc         , f_qr       = f_qr        ,&amp;
+                f_qi       = f_qi         , f_qs       = f_qs         , f_qg       = f_qg        ,&amp;
+                alswvisdir = alswvisdir_p , alswvisdif = alswvisdif_p , alswnirdir = alswnirdir_p,&amp;
+                alswnirdif = alswnirdif_p , swvisdir   = swvisdir_p   , swvisdif   = swvisdif_p  ,&amp;
+                swnirdir   = swnirdir_p   , swnirdif   = swnirdif_p   ,                           &amp;
                 !end optional arguments.
-                ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde ,      &amp;
-                ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme ,      &amp;
-                its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte        &amp;
+                ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde ,&amp;
+                ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme ,&amp;
+                its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte  &amp;
                        )
 #else
 !... REARRANGED CALL:
        call rrtmg_swrad( &amp;
-                p3d        = pres_p       , p8w       = pres2_p    , pi3d      = pi_p      , &amp;
-                t3d        = t_p          , t8w       = t2_p       , rho3d     = rho_p     , &amp;
-                rthratensw = rthratensw_p , swupt     = swupt_p    , swuptc    = swuptc_p  , &amp;
-                swdnt      = swdnt_p      , swdntc    = swdntc_p   , swupb     = swupb_p   , &amp;
-                swupbc     = swupbc_p     , swdnb     = swdnb_p    , swdnbc    = swdnbc_p  , &amp;
-                swcf       = swcf_p       , gsw       = gsw_p      , xtime     = xtime_m   , &amp;
-                gmt        = gmt          , xlat      = xlat_p     , xlong     = xlon_p    , &amp;
-                radt       = radt         , degrad    = degrad     , declin    = declin    , &amp;
-                coszr      = coszr_p      , julday    = julday     , solcon    = solcon    , &amp;
-                albedo     = sfc_albedo_p , tsk       = tsk_p      , dz8w      = dz_p      , &amp;
-                cldfra3d   = cldfrac_p    , r         = R_d        , g         = g         , &amp;
-                icloud     = icloud       , warm_rain = warm_rain  , f_ice_phy = f_ice     , &amp;
-                f_rain_phy = f_rain       , xland     = xland_p    , xice      = xice_p    , &amp;
-                snow       = snow_p       , qv3d      = qv_p       , qc3d      = qc_p      , &amp;
-                qr3d       = qr_p         , qi3d      = qi_p       , qs3d      = qs_p      , &amp;
-                qg3d       = qg_p         , f_qv      = f_qv       , f_qc      = f_qc      , &amp;
-                f_qr       = f_qr         , f_qi      = f_qi       , f_qs      = f_qs      , &amp;
-                f_qg       = f_qg         ,                                                  &amp;
+                p3d        = pres_p       , p8w       = pres2_p    , pi3d      = pi_p            ,&amp;
+                t3d        = t_p          , t8w       = t2_p       , rho3d     = rho_p           ,&amp;
+                rthratensw = rthratensw_p , swupt     = swupt_p    , swuptc    = swuptc_p        ,&amp;
+                swdnt      = swdnt_p      , swdntc    = swdntc_p   , swupb     = swupb_p         ,&amp;
+                swupbc     = swupbc_p     , swdnb     = swdnb_p    , swdnbc    = swdnbc_p        ,&amp;
+                swcf       = swcf_p       , gsw       = gsw_p      , xtime     = xtime_m         ,&amp;
+                gmt        = gmt          , xlat      = xlat_p     , xlong     = xlon_p          ,&amp;
+                radt       = radt         , degrad    = degrad     , declin    = declin          ,&amp;
+                coszr      = coszr_p      , julday    = julday     , solcon    = solcon          ,&amp;
+                albedo     = sfc_albedo_p , tsk       = tsk_p      , dz8w      = dz_p            ,&amp;
+                cldfra3d   = cldfrac_p    , r         = R_d        , g         = g               ,&amp;
+                icloud     = icloud       , warm_rain = warm_rain  , f_ice_phy = f_ice           ,&amp;
+                f_rain_phy = f_rain       , xland     = xland_p    , xice      = xice_p          ,&amp;
+                snow       = snow_p       , qv3d      = qv_p       , qc3d      = qc_p            ,&amp;
+                qr3d       = qr_p         , qi3d      = qi_p       , qs3d      = qs_p            ,&amp;
+                qg3d       = qg_p         , sf_surface_physics = sf_surface_physics ,             &amp; 
                 !begin optional arguments:
-                swupflx    = swupflx_p    , swupflxc  = swupflxc_p , swdnflx   = swdnflx_p , &amp;
-                swdnflxc   = swdnflxc_p   ,                                                  &amp;
+                f_qv       = f_qv         , f_qc       = f_qc         , f_qr       = f_qr        ,&amp;
+                f_qi       = f_qi         , f_qs       = f_qs         , f_qg       = f_qg        ,&amp;
+                alswvisdir = alswvisdir_p , alswvisdif = alswvisdif_p , alswnirdir = alswnirdir_p,&amp;
+                alswnirdif = alswnirdif_p , swvisdir   = swvisdir_p   , swvisdif   = swvisdif_p  ,&amp;
+                swnirdir   = swnirdir_p   , swnirdif   = swnirdif_p   ,                           &amp;
                 !end optional arguments.
-                ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde ,      &amp;
-                ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme ,      &amp;
-                its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte        &amp;
+                ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde ,&amp;
+                ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme ,&amp;
+                its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte  &amp;
                        )
 #endif
-!... CALL FROM REVISION 1721:
-!      call rrtmg_swrad( &amp;
-!               rthratensw = rthratensw_p , swupt     = swupt_p    , swuptc    = swuptc_p  , &amp;
-!               swdnt      = swdnt_p      , swdntc    = swdntc_p   , swupb     = swupb_p   , &amp;
-!               swupbc     = swupbc_p     , swdnb     = swdnb_p    , swdnbc    = swdnbc_p  , &amp;
-!               swcf       = swcf_p       , gsw       = gsw_p      , xtime     = xtime_m   , &amp;
-!               gmt        = gmt          , xlat      = xlat_p     , xlong     = xlon_p    , &amp;
-!               radt       = radt         , degrad    = degrad     , declin    = declin    , &amp;
-!               coszr      = coszr_p      , julday    = julday     , solcon    = solcon    , &amp;
-!               albedo     = sfc_albedo_p , t3d       = t_p        , t8w       = t2_p      , &amp;
-!               tsk        = tsk_p        , p3d       = pres_p     , p8w       = pres2_p   , &amp;
-!               pi3d       = pi_p         , rho3d     = rho_p      , dz8w      = dz_p      , &amp;
-!               cldfra3d   = cldfrac_p    , r         = R_d        , g         = g         , &amp;
-!               icloud     = icloud       , warm_rain = warm_rain  , f_ice_phy = f_ice     , &amp;
-!               f_rain_phy = f_rain       , xland     = xland_p    , xice      = xice_p    , &amp;
-!               snow       = snow_p       , qv3d      = qv_p       , qc3d      = qc_p      , &amp;
-!               qr3d       = qr_p         , qi3d      = qi_p       , qs3d      = qs_p      , &amp;
-!               qg3d       = qg_p         , f_qv      = f_qv       , f_qc      = f_qc      , &amp;
-!               f_qr       = f_qr         , f_qi      = f_qi       , f_qs      = f_qs      , &amp;
-!               f_qg       = f_qg         ,                                                  &amp;
-!               !begin optional arguments:
-!               swupflx    = swupflx_p    , swupflxc  = swupflxc_p , swdnflx   = swdnflx_p , &amp;
-!               swdnflxc   = swdnflxc_p   ,                                                  &amp;
-!               !end optional arguments.
-!               ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde ,      &amp;
-!               ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme ,      &amp;
-!               its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte        &amp;
-!                      )
        write(0,*) '--- exit subroutine rrtmg_swrad'
 
     case (&quot;cam_sw&quot;)
@@ -695,55 +691,6 @@
                 its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte        &amp;
                   )
 #endif
-!... CALL FROM REVISION 1721:
-!      call camrad( dolw = .false. , dosw = .true. ,                                         &amp;
-!               rthratenlw    = rthratenlw_p  , rthratensw    = rthratensw_p  ,              &amp;
-!               swupt         = swupt_p       , swuptc        = swuptc_p      ,              &amp;
-!               swdnt         = swdnt_p       , swdntc        = swdntc_p      ,              &amp;
-!               lwupt         = lwupt_p       , lwuptc        = lwuptc_p      ,              &amp;
-!               lwdnt         = lwdnt_p       , lwdntc        = lwdntc_p      ,              &amp;
-!               swupb         = swupb_p       , swupbc        = swupbc_p      ,              &amp;
-!               swdnb         = swdnb_p       , swdnbc        = swdnbc_p      ,              &amp;
-!               lwupb         = lwupb_p       , lwupbc        = lwupbc_p      ,              &amp;
-!               lwdnb         = lwdnb_p       , lwdnbc        = lwdnbc_p      ,              &amp;
-!               swcf          = swcf_p        , lwcf          = lwcf_p        ,              &amp;
-!               gsw           = gsw_p         , glw           = glw_p         ,              &amp;
-!               olr           = olrtoa_p      , cemiss        = cemiss_p      ,              &amp;
-!               taucldc       = taucldc_p     , taucldi       = taucldi_p     ,              &amp; 
-!               coszr         = coszr_p       , albedo        = sfc_albedo_p  ,              &amp; 
-!               emiss         = sfc_emiss_p   , tsk           = tsk_p         ,              &amp; 
-!               xlat          = xlat_p        , xlong         = xlon_p        ,              &amp;
-!               t_phy         = t_p           , pi_phy        = pi_p          ,              &amp;
-!               p_phy         = pres_p        , p8w           = pres2_p       ,              &amp;
-!               z             = zmid_p        , dz8w          = dz_p          ,              &amp;            
-!               rho_phy       = rho_p         , qv3d          = qv_p          ,              &amp; 
-!               qc3d          = qc_p          , qr3d          = qr_p          ,              &amp;
-!               qi3d          = qi_p          , qs3d          = qs_p          ,              &amp;
-!               qg3d          = qg_p          , f_qv          = f_qv          ,              &amp;
-!               f_qc          = f_qc          , f_qr          = f_qr          ,              &amp;
-!               f_qi          = f_qi          , f_qs          = f_qs          ,              &amp;
-!               f_qg          = f_qg          , f_ice_phy     = f_ice         ,              &amp;
-!               f_rain_phy    = f_rain        , cldfra        = cldfrac_p     ,              &amp;
-!               xland         = xland_p       , xice          = xice_p        ,              &amp;
-!               num_months    = num_months    , levsiz        = num_oznlevels ,              &amp; 
-!               pin0          = pin_p         , ozmixm        = ozmixm_p      ,              &amp;
-!               paerlev       = num_aerlevels , naer_c        = num_aerosols  ,              &amp;
-!               m_psp         = m_psp_p       , m_psn         = m_psn_p       ,              &amp;
-!               aerosolcp     = aerosolcp_p   , aerosolcn     = aerosolcn_p   ,              &amp;
-!               m_hybi0       = m_hybi_p      , snow          = snow_p        ,              &amp;
-!               cam_abs_dim1  = cam_abs_dim1  , cam_abs_dim2  = cam_abs_dim2  ,              &amp;
-!               gmt           = gmt           , yr            = year          ,              &amp;
-!               julday        = julday        , julian        = curr_julday   ,              &amp;
-!               dt            = dt_dyn        , xtime         = xtime_m       ,              &amp;
-!               declin        = declin        , solcon        = solcon        ,              &amp;
-!               radt          = radt          , degrad        = degrad        ,              &amp;
-!               n_cldadv      = 3             , abstot_3d     = abstot_p      ,              &amp;
-!               absnxt_3d     = absnxt_p      , emstot_3d     = emstot_p      ,              &amp;
-!               doabsems      = doabsems      ,                                              &amp;
-!               ids = ids , ide = ide , jds = jds , jde = jde , kds = kds , kde = kde ,      &amp;
-!               ims = ims , ime = ime , jms = jms , jme = jme , kms = kms , kme = kme ,      &amp;
-!               its = its , ite = ite , jts = jts , jte = jte , kts = kts , kte = kte        &amp;
-!                 )
 !      write(0,*) 'doabsems =',doabsems
 !      write(0,*) 'max swupb      =',maxval(swupb_p(its:ite,jms:jme))
 !      write(0,*) 'max swupbc     =',maxval(swupbc_p(its:ite,jms:jme))

</font>
</pre>