From afe368367a2285d86cf9086fb35b1ed446dd27cb Mon Sep 17 00:00:00 2001 From: Calvin Coulbury Date: Fri, 15 May 2026 10:16:35 -0400 Subject: [PATCH] Added SST field to mpas_init_atm_cases.F, allowing sea surface temperatures to be ingested in to init files. Previously, all SSTs defaulted to the skin temperature, which produced unphysically cold SST values in the Arctic, where the skin temperature above sea ice is well below freezing. --- src/core_init_atmosphere/mpas_init_atm_cases.F | 8 ++++++++ src/core_init_atmosphere/mpas_init_atm_surface.F | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/core_init_atmosphere/mpas_init_atm_cases.F b/src/core_init_atmosphere/mpas_init_atm_cases.F index fb67a5164b..dc3dbc232e 100644 --- a/src/core_init_atmosphere/mpas_init_atm_cases.F +++ b/src/core_init_atmosphere/mpas_init_atm_cases.F @@ -3585,6 +3585,7 @@ subroutine init_atm_case_gfs(block, mesh, nCells, nEdges, nVertLevels, fg, state trim(field % field) == 'PRESSURE' .or. & trim(field % field) == 'SNOW' .or. & trim(field % field) == 'SEAICE' .or. & + trim(field % field) == 'SST' .or. & trim(field % field) == 'SKINTEMP') then if (trim(field % field) == 'SM000010' .or. & @@ -4561,6 +4562,13 @@ subroutine init_atm_case_gfs(block, mesh, nCells, nEdges, nVertLevels, fg, state lonPoints => lonCell call mpas_pool_get_array(fg, 'xice', destField1d) ndims = 1 + else if (trim(field % field) == 'SST') then + call mpas_log_write('Interpolating SST') + nInterpPoints = nCells + latPoints => latCell + lonPoints => lonCell + call mpas_pool_get_array(fg, 'sst', destField1d) + ndims = 1 else if (trim(field % field) == 'SKINTEMP') then call mpas_log_write('Interpolating SKINTEMP') nInterpPoints = nCells diff --git a/src/core_init_atmosphere/mpas_init_atm_surface.F b/src/core_init_atmosphere/mpas_init_atm_surface.F index bb68b6942e..31071d901b 100644 --- a/src/core_init_atmosphere/mpas_init_atm_surface.F +++ b/src/core_init_atmosphere/mpas_init_atm_surface.F @@ -213,7 +213,7 @@ subroutine interp_sfc_to_MPAS(timeString, mesh, fg, dims, dminfo, config_sfc_pre do while (istatus == 0) !sea-surface data: - if((trim(field % field) == 'SKINTEMP') .or. (trim(field % field) == 'SST')) then + if(trim(field % field) == 'SST') then ! call mpas_log_write('... Processing SST:') sst(1:nCells) = 0.0_RKIND destField1d => sst