Skip to content

Commit db6dbba

Browse files
committed
Merge branch 'initsnow' into release-v8.4.0 (PR #1438)
This merge fixes an issue in snow initialization over areas covered by seaice in MPAS-A. Snow water equivalent (as well as snow depth and snow cover) in the initial conditions was set to zero over sea ice areas. This leads to a significant warm bias of skintemp during model integration. When MPAS is initialized in winter, the simulated conditions over polar regions become physically unrealistic. This merge corrects snow initialization, making it physically reasonable over areas covered by seaice in winter. * initsnow: Fix snow initialization over seaice points in MPAS-A
2 parents 11eb3fe + 00f5ad2 commit db6dbba

2 files changed

Lines changed: 9 additions & 3 deletions

File tree

src/core_atmosphere/physics/mpas_atmphys_initialize_real.F

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -606,6 +606,7 @@ subroutine physics_init_seaice(mesh, input, dims, configs)
606606
real(kind=RKIND),pointer:: tsk_seaice_threshold
607607
real(kind=RKIND),dimension(:),pointer :: vegfra
608608
real(kind=RKIND),dimension(:),pointer :: seaice,snoalb,xice
609+
real(kind=RKIND),dimension(:),pointer :: snow, snowh, snowc
609610
real(kind=RKIND),dimension(:),pointer :: skintemp,tmn,xland
610611
real(kind=RKIND),dimension(:,:),pointer:: tslb,smois,sh2o,smcrel
611612

@@ -637,6 +638,9 @@ subroutine physics_init_seaice(mesh, input, dims, configs)
637638

638639
call mpas_pool_get_array(input, 'seaice', seaice)
639640
call mpas_pool_get_array(input, 'xice', xice)
641+
call mpas_pool_get_array(input, 'snowc', snowc)
642+
call mpas_pool_get_array(input, 'snowh', snowh)
643+
call mpas_pool_get_array(input, 'snow', snow)
640644
call mpas_pool_get_array(input, 'vegfra', vegfra)
641645

642646
call mpas_pool_get_array(input, 'skintemp', skintemp)
@@ -699,6 +703,11 @@ subroutine physics_init_seaice(mesh, input, dims, configs)
699703
call mpas_log_write('$i $r $r $r', intArgs=(/iCell/), &
700704
realArgs=(/real(landmask(iCell),kind=RKIND),xland(iCell),xice(iCell)/))
701705
xice(iCell) = 0._RKIND
706+
if(landmask(iCell) .eq. 0) then
707+
snowc(iCell) = 0._RKIND ! snow = 0 over water points
708+
snowh(iCell) = 0._RKIND
709+
snow(iCell) = 0._RKIND
710+
endif
702711
endif
703712

704713
enddo

src/core_init_atmosphere/mpas_init_atm_cases.F

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4539,9 +4539,6 @@ subroutine init_atm_case_gfs(block, mesh, nCells, nEdges, nVertLevels, fg, state
45394539
interp_list(2) = W_AVERAGE4
45404540
interp_list(3) = 0
45414541
4542-
masked = 0
4543-
fillval = 0.0
4544-
45454542
nInterpPoints = nCells
45464543
latPoints => latCell
45474544
lonPoints => lonCell

0 commit comments

Comments
 (0)