Skip to content

Commit 00f5ad2

Browse files
smileMchenmgduda
authored andcommitted
Fix snow initialization over seaice points in MPAS-A
This commit fixes an issue in snow initialization over the Arctic Ocean and other areas covered by seaice. Snow water equivalent (as well as snow depth and snow cover) in the initial conditions of MPAS 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 commit corrects snow initialization, making it physically reasonable over Arctic Ocean and other areas covered by seaice in winter.
1 parent 942d402 commit 00f5ad2

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
@@ -4122,9 +4122,6 @@ subroutine init_atm_case_gfs(block, mesh, nCells, nEdges, nVertLevels, fg, state
41224122
interp_list(2) = W_AVERAGE4
41234123
interp_list(3) = 0
41244124
4125-
masked = 0
4126-
fillval = 0.0
4127-
41284125
nInterpPoints = nCells
41294126
latPoints => latCell
41304127
lonPoints => lonCell

0 commit comments

Comments
 (0)