ESCOMP / CMEPS

NUOPC Community Mediator for Earth Prediction Systems
https://escomp.github.io/CMEPS/
24 stars 79 forks source link

WIP: implement ocean albedo calculation for UFS #391

Closed DeniseWorthen closed 1 year ago

DeniseWorthen commented 1 year ago

Currently UFS does not use the ocean albedo calculation. To allow this feature for UFS, I have been working on a feature branch which uses the current med_phases_prep_ocn_custom_cesm (renamed as med_phases_prep_ocn_custom) which can be called for either CESM or UFS.

Within the med_phases_ocnalb_mod, I've needed to add configuration parameters for applicability to UFS. These include defining several variables which will default to CESM values if not provided via a configuration.

! used, reused in module
  logical  :: flux_albav      ! use average dif and dir albedos
  logical  :: use_nextswcday  ! use the scalar field for next time (otherwise, will be set using clock)
  logical  :: use_min_albedo  ! apply minimum value of albedo for direct vis, nir
  real(R8) :: min_albedo      ! minimum value of albedo for direct vis, nir
  real(R8) :: albdif          ! 60 deg reference albedo, diffuse
  real(R8) :: albdir          ! 60 deg reference albedo, direct 

The implementation of the ocean albedos is currently being science tested for UFS before the changes will need to come back to ESCOMP. The current changes can be view here. I'd appreciate any feedback.

DeniseWorthen commented 1 year ago

I actually thought that the abldif and albdir constants should be set as local copies of shr constants. I know how to do that for UFS, but I wasn't sure if these might already exist as shr constants in CESM and where they would be.