110 likes | 222 Views
Changing the albedo in CSIM4. Julie Schramm CCSM Software Engineering Group ccsm@ucar.edu http://www.cgd.ucar.edu/csm/models/ice-csim4/index.html. What is in the albedo parameterization?. Surfaces: dry snow, melting snow, bare ice, open ocean Properties two spectral intervals: VIS, NIR
E N D
Changing the albedo in CSIM4 Julie Schramm CCSM Software Engineering Group ccsm@ucar.edu http://www.cgd.ucar.edu/csm/models/ice-csim4/index.html
What is in the albedo parameterization? • Surfaces: dry snow, melting snow, bare ice, open ocean • Properties • two spectral intervals: VIS, NIR • Direct and diffuse • Melt ponds are crudely approximated using (Ts) for the bare ice albedo • Dependencies • Snow thickness, ice thickness, surface temperature • Calculated at each ocean grid point, for each thickness category, then area-weighted
What’s not in the parameterization? • Zenith angle dependence (direct = diffuse) • Variations due to surface topography • Snow age • Explicit melt ponds
Source code residence • $CSMROOT/models/ice/csim4/src/source • Source code is in module ice_albedo.F • 185 lines • Contains subroutine albedos • Modified source code should be put in a separate directory called src.ice in $SCRIPTS/$CASE/ • Albedo parameterization described in Scientific Guide available at: http://www.ccsm.ucar.edu/models/ccsm2.0/ • User’s Guide also available here
Base albedos • Simplest way to modify the albedo: real (kind=dbl_kind), parameter :: & albocn = 0.06 ! Ocean albedo . . . &, albicev = 0.78 ! Visible ice albedo for h > ahmax &, albicei = 0.36 ! Near-ir ice albedo for h > ahmax &, albsnowv = 0.98 ! Cold snow albedo, visible &, albsnowi = 0.70 ! Cold snow albedo, near IR . . .
Other albedo parameters real (kind=dbl_kind), parameter :: & snowpatch = 0.02 ! Parameter for fractional snow area • Fractional area covered with snow : fs = hs/(hs + snowpatch) • Represents that for relatively thin snow cover, there will be some areas of bare ice • Value of 0.02 provides best match with SHEBA data
Other albedo parameters real (kind=dbl_kind), parameter :: & ahmax = 0.5 ! Thickness above which ice albedo is constant (m)
Temperature dependence parameters &, dT_mlt = 1 ! change in temp to give dalb_mlt albedo change (>0) &, dalb_mlt = -0.075 ! albedo change per dT_mlt change in temp for ice &, dalb_mltv = -0.100 ! albedo vis change per dT_mlt change in temp for snow &, dalb_mlti = -0.150 ! albedo nir change per dT_mlt change in temp for snow
Beyond Basics • Putting modifications into the do loop in ice_albedo.F • Global grid is decomposed into local subdomains • Subdomains are dimensioned imt_local x jmt_local • The physical portion of a subdomain is dimensioned (ilo:ihi, jlo:jhi) • When adding arrays to this loop, check the dimensions! do j=jlo,jhi do i=ilo,ihi . . enddo enddo jlo:jhi jmt_global jmt_local jlo:jhi ilo:ihi ilo:ihi imt_local imt_global
Troubleshooting • The model won’t compile. For example, in ice.log file “ice_albedo.F”, 1516-036 (S) Entity fsnow has undefined type. • Verify that any arrays you’ve added to ice_albedo.F are accessible via one of the use statements. • I changed some parameters in ice_albedo.F, but the answers aren’t changing… • Be sure to delete all files in /ptmp/$LOGNAME/$CASE/ice/obj and recompile. • I’m getting funny lines in the albedo field… • Make sure that any arrays you add to the do loop are indexed as (ilo:ihi, jlo:jhi) or (imt_local, jmt_local), not (imt_global, jmt_global).