diff --git a/src/core_atmosphere/Registry.xml b/src/core_atmosphere/Registry.xml index 1b2c7e04ee..85fdd251a0 100644 --- a/src/core_atmosphere/Registry.xml +++ b/src/core_atmosphere/Registry.xml @@ -395,9 +395,10 @@ - @@ -442,6 +443,10 @@ + + + + @@ -467,29 +472,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + + + - - - - - - + + + + + + + + + + @@ -506,19 +555,11 @@ + + - - - - - - - - - - @@ -1117,6 +1158,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/core_atmosphere/mpas_atm_core.F b/src/core_atmosphere/mpas_atm_core.F index 5b56d653a8..84754e94f4 100644 --- a/src/core_atmosphere/mpas_atm_core.F +++ b/src/core_atmosphere/mpas_atm_core.F @@ -92,16 +92,18 @@ function atm_core_init(domain, startTimeStamp) result(ierr) if (config_do_restart) then call MPAS_stream_mgr_read(domain % streamManager, streamID='restart', ierr=ierr) else + call MPAS_stream_mgr_read(domain % streamManager, streamID='static', whence=MPAS_STREAM_NEAREST, ierr=ierr) call MPAS_stream_mgr_read(domain % streamManager, streamID='input', ierr=ierr) end if + if (ierr /= MPAS_STREAM_MGR_NOERR) then call mpas_log_write('********************************************************************************', messageType=MPAS_LOG_ERR) call mpas_log_write('Error reading initial conditions', messageType=MPAS_LOG_ERR) call mpas_log_write('********************************************************************************', messageType=MPAS_LOG_CRIT) end if + call MPAS_stream_mgr_reset_alarms(domain % streamManager, streamID='static', direction=MPAS_STREAM_INPUT, ierr=ierr) call MPAS_stream_mgr_reset_alarms(domain % streamManager, streamID='input', direction=MPAS_STREAM_INPUT, ierr=ierr) call MPAS_stream_mgr_reset_alarms(domain % streamManager, streamID='restart', direction=MPAS_STREAM_INPUT, ierr=ierr) - ! ! Read all other inputs ! For now we don't do this here to match results with previous code; to match requires diff --git a/src/core_atmosphere/mpas_atm_core_interface.F b/src/core_atmosphere/mpas_atm_core_interface.F index 437502430e..c17a272b15 100644 --- a/src/core_atmosphere/mpas_atm_core_interface.F +++ b/src/core_atmosphere/mpas_atm_core_interface.F @@ -314,7 +314,7 @@ function atm_get_mesh_stream(configs, stream) result(ierr) else if (config_do_restart) then write(stream,'(a)') 'restart' else - write(stream,'(a)') 'input' + write(stream,'(a)') 'static' end if end function atm_get_mesh_stream diff --git a/src/core_atmosphere/physics/mpas_atmphys_landuse.F b/src/core_atmosphere/physics/mpas_atmphys_landuse.F index 779b85a4f9..309e79c289 100644 --- a/src/core_atmosphere/physics/mpas_atmphys_landuse.F +++ b/src/core_atmosphere/physics/mpas_atmphys_landuse.F @@ -95,7 +95,7 @@ subroutine landuse_init_forMPAS(dminfo,julday,mesh,configs,diag_physics,sfc_inpu integer,intent(in):: julday !local pointers: - logical,pointer:: config_do_restart, & + logical,pointer:: config_do_restart, config_do_DAcycling, & config_frac_seaice, & config_sfc_albedo @@ -133,6 +133,7 @@ subroutine landuse_init_forMPAS(dminfo,julday,mesh,configs,diag_physics,sfc_inpu !call mpas_log_write('--- enter subroutine landuse_init_forMPAS:') call mpas_pool_get_config(configs,'config_do_restart' ,config_do_restart ) + call mpas_pool_get_config(configs,'config_do_DAcycling' ,config_do_DAcycling ) call mpas_pool_get_config(configs,'config_frac_seaice',config_frac_seaice) call mpas_pool_get_config(configs,'config_sfc_albedo' ,config_sfc_albedo ) @@ -252,8 +253,9 @@ subroutine landuse_init_forMPAS(dminfo,julday,mesh,configs,diag_physics,sfc_inpu !call mpas_log_write('--- isice =$i',intArgs=(/isice/)) !call mpas_log_write('--- iswater =$i',intArgs=(/iswater/)) !call mpas_log_write('--- isurban =$i',intArgs=(/isurban/)) - if(config_do_restart) then + if(config_do_restart .or. config_do_DAcycling) then call mpas_log_write('--- config_do_restart =$l', logicArgs=(/config_do_restart/)) + call mpas_log_write('--- config_do_DAcycling =$l', logicArgs=(/config_do_DAcycling/)) call mpas_log_write('--- skip the end of landuse_init_forMPAS') return endif diff --git a/src/core_init_atmosphere/Registry.xml b/src/core_init_atmosphere/Registry.xml index 515b881d01..90dad39fdc 100644 --- a/src/core_init_atmosphere/Registry.xml +++ b/src/core_init_atmosphere/Registry.xml @@ -555,6 +555,10 @@ + + + + diff --git a/src/core_init_atmosphere/mpas_init_atm_cases.F b/src/core_init_atmosphere/mpas_init_atm_cases.F index 84e056b9a0..1fb7c73045 100644 --- a/src/core_init_atmosphere/mpas_init_atm_cases.F +++ b/src/core_init_atmosphere/mpas_init_atm_cases.F @@ -4498,7 +4498,7 @@ subroutine init_atm_case_gfs(block, mesh, nCells, nEdges, nVertLevels, fg, state if (allocated(maskslab)) deallocate(maskslab) ! Freeze really cold ocean - where (sst < 271.0 .and. landmask == 0) xice = 1.0 + !where (sst < 271.0 .and. landmask == 0) xice = 1.0 ! Limit XICE to values between 0 and 1. Although the input meteorological field is between 0. ! and 1., interpolation to the MPAS grid can yield values of XiCE less than 0. and greater