From 24cdc59975806f25dd6ce50a2ec3276a42ddf2b3 Mon Sep 17 00:00:00 2001 From: Jon Wolfe Date: Tue, 21 Feb 2017 10:32:28 -0800 Subject: [PATCH 1/7] Modifications needed for time filtered ssh gradient coupling --- components/mpas-o/bld/build-namelist | 7 ++++ .../mpas-o/bld/build-namelist-group-list | 1 + components/mpas-o/bld/build-namelist-section | 6 +++ .../namelist_defaults_mpas-o.xml | 3 ++ .../namelist_definition_mpas-o.xml | 11 ++++++ components/mpas-o/driver/ocn_comp_mct.F | 39 ++++++++++++++++++- components/mpas-o/model | 2 +- 7 files changed, 66 insertions(+), 3 deletions(-) diff --git a/components/mpas-o/bld/build-namelist b/components/mpas-o/bld/build-namelist index 4229d2a25400..3ba099f5b3da 100755 --- a/components/mpas-o/bld/build-namelist +++ b/components/mpas-o/bld/build-namelist @@ -671,6 +671,12 @@ add_default($nl, 'config_use_bulk_thickness_flux'); add_default($nl, 'config_flux_attenuation_coefficient'); add_default($nl, 'config_flux_attenuation_coefficient_runoff'); +############################ +# Namelist group: coupling # +############################ + +add_default($nl, 'config_ssh_grad_relax_timescale'); + ###################################### # Namelist group: shortwaveRadiation # ###################################### @@ -1794,6 +1800,7 @@ my @groups = qw(run_modes vmix_tanh cvmix forcing + coupling shortwaveradiation frazil_ice land_ice_fluxes diff --git a/components/mpas-o/bld/build-namelist-group-list b/components/mpas-o/bld/build-namelist-group-list index 6af53518ed3a..0f7ffb73bd6e 100644 --- a/components/mpas-o/bld/build-namelist-group-list +++ b/components/mpas-o/bld/build-namelist-group-list @@ -23,6 +23,7 @@ my @groups = qw(run_modes vmix_tanh cvmix forcing + coupling shortwaveradiation frazil_ice land_ice_fluxes diff --git a/components/mpas-o/bld/build-namelist-section b/components/mpas-o/bld/build-namelist-section index 0d8281db3e42..b0e1bd976a50 100644 --- a/components/mpas-o/bld/build-namelist-section +++ b/components/mpas-o/bld/build-namelist-section @@ -258,6 +258,12 @@ add_default($nl, 'config_use_bulk_thickness_flux'); add_default($nl, 'config_flux_attenuation_coefficient'); add_default($nl, 'config_flux_attenuation_coefficient_runoff'); +############################ +# Namelist group: coupling # +############################ + +add_default($nl, 'config_ssh_grad_relax_timescale'); + ###################################### # Namelist group: shortwaveRadiation # ###################################### diff --git a/components/mpas-o/bld/namelist_files/namelist_defaults_mpas-o.xml b/components/mpas-o/bld/namelist_files/namelist_defaults_mpas-o.xml index c8ea7b6e2535..79fc1a2b3146 100644 --- a/components/mpas-o/bld/namelist_files/namelist_defaults_mpas-o.xml +++ b/components/mpas-o/bld/namelist_files/namelist_defaults_mpas-o.xml @@ -227,6 +227,9 @@ 0.001 10.0 + +86400.0 + 'jerlov' 3 diff --git a/components/mpas-o/bld/namelist_files/namelist_definition_mpas-o.xml b/components/mpas-o/bld/namelist_files/namelist_definition_mpas-o.xml index 12a0ffc0b804..f1b759e63e89 100644 --- a/components/mpas-o/bld/namelist_files/namelist_definition_mpas-o.xml +++ b/components/mpas-o/bld/namelist_files/namelist_definition_mpas-o.xml @@ -1157,6 +1157,17 @@ Default: Defined in namelist_defaults.xml + + + +Timescale for relaxation of the ssh gradient for coupling. A value of 0.0 removes any relaxation and gives instantaneous response. + +Valid values: Any positive real number. +Default: Defined in namelist_defaults.xml + + + domain % blocklist @@ -1948,6 +1960,8 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ call mpas_pool_get_array(forcingPool, 'avgTracersSurfaceValue', avgTracersSurfaceValue) call mpas_pool_get_array(forcingPool, 'avgSurfaceVelocity', avgSurfaceVelocity) call mpas_pool_get_array(forcingPool, 'avgSSHGradient', avgSSHGradient) + call mpas_pool_get_array(forcingPool, 'filteredSSHGradientZonal', filteredSSHGradientZonal) + call mpas_pool_get_array(forcingPool, 'filteredSSHGradientMeridional', filteredSSHGradientMeridional) if ( frazilIceActive ) then call mpas_pool_get_array(forcingPool, 'seaIceEnergy', seaIceEnergy) call mpas_pool_get_array(forcingPool, 'frazilSurfacePressure', frazilSurfacePressure) @@ -1983,6 +1997,27 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ ! call mpas_pool_get_array(forcingPool, 'DMSFlux', DMSFlux) ! call mpas_pool_get_array(forcingPool, 'surfaceUpwardCO2Flux', surfaceUpwardCO2Flux) + ! time filter ssh gradient + if (firstExport .and. trim(runtype) == "initial") then + filteredSSHGradientZonal = avgSSHGradient(index_avgZonalSSHGradient, :) + filteredSSHGradientMeridional = avgSSHGradient(index_avgMeridionalSSHGradient, :) + firstExport = .false. + else + + if (config_ssh_grad_relax_timescale < real(ocn_cpl_dt,RKIND)) then + timeFilterFactor = 1.0_RKIND + else + timeFilterFactor = real(ocn_cpl_dt,RKIND) / config_ssh_grad_relax_timescale + endif + + filteredSSHGradientZonal = filteredSSHGradientZonal * (1.0_RKIND - timeFilterFactor) + & + avgSSHGradient(index_avgZonalSSHGradient, :) * timeFilterFactor + + filteredSSHGradientMeridional = filteredSSHGradientMeridional * (1.0_RKIND - timeFilterFactor) + & + avgSSHGradient(index_avgMeridionalSSHGradient, :) * timeFilterFactor + + endif + do i = 1, nCellsSolve n = n + 1 @@ -1991,8 +2026,8 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ o2x_o % rAttr(index_o2x_So_u, n) = avgSurfaceVelocity(index_avgZonalSurfaceVelocity, i) o2x_o % rAttr(index_o2x_So_v, n) = avgSurfaceVelocity(index_avgMeridionalSurfaceVelocity, i) - o2x_o % rAttr(index_o2x_So_dhdx, n) = avgSSHGradient(index_avgZonalSSHGradient, i) - o2x_o % rAttr(index_o2x_So_dhdy, n) = avgSSHGradient(index_avgMeridionalSSHGradient, i) + o2x_o % rAttr(index_o2x_So_dhdx, n) = filteredSSHGradientZonal(i) + o2x_o % rAttr(index_o2x_So_dhdy, n) = filteredSSHGradientMeridional(i) if ( frazilIceActive ) then ! negative when frazil ice can be melted keepFrazil = .true. diff --git a/components/mpas-o/model b/components/mpas-o/model index 86e1f72a67f3..06040def32c7 160000 --- a/components/mpas-o/model +++ b/components/mpas-o/model @@ -1 +1 @@ -Subproject commit 86e1f72a67f3e7a2b662369d37fdb74f24668599 +Subproject commit 06040def32c79948f280c433788d02fbee2e6e52 From a14bac177f0660f706492fa6ea51bb8721671c55 Mon Sep 17 00:00:00 2001 From: Jon Wolfe Date: Mon, 27 Feb 2017 10:16:07 -0800 Subject: [PATCH 2/7] Reimplement sea surface tilt filtering in mpas-o driver. --- components/mpas-o/driver/ocn_comp_mct.F | 99 +++++++++++++++---------- 1 file changed, 61 insertions(+), 38 deletions(-) diff --git a/components/mpas-o/driver/ocn_comp_mct.F b/components/mpas-o/driver/ocn_comp_mct.F index b86545258e5d..dc1effeb0fec 100644 --- a/components/mpas-o/driver/ocn_comp_mct.F +++ b/components/mpas-o/driver/ocn_comp_mct.F @@ -194,6 +194,11 @@ subroutine ocn_init_mct( EClock, cdata_o, x2o_o, o2x_o, NLFilename )!{{{ real (kind=RKIND) :: dt type (MPAS_timeInterval_type) :: timeStep + ! Added for coupling interval initialization + integer, pointer :: index_avgZonalSSHGradient, index_avgMeridionalSSHGradient + real (kind=RKIND), dimension(:), pointer :: filteredSSHGradientZonal, filteredSSHGradientMeridional + real (kind=RKIND), dimension(:,:), pointer :: avgSSHGradient + interface subroutine xml_stream_parser(xmlname, mgr_p, comm, ierr) bind(c) use iso_c_binding, only : c_char, c_ptr, c_int @@ -628,6 +633,28 @@ end subroutine xml_stream_get_attributes end do end if +!----------------------------------------------------------------------- +! +! initialize coupling variables +! NOTE: could be moved to subroutine +! +!----------------------------------------------------------------------- + + if ( runtype == "initial") then + block_ptr => domain % blocklist + do while(associated(block_ptr)) + call mpas_pool_get_subpool(block_ptr % structs, 'forcing', forcingPool) + call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientZonal', index_avgZonalSSHGradient) + call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientMeridional', index_avgMeridionalSSHGradient) + call mpas_pool_get_array(forcingPool, 'avgSSHGradient', avgSSHGradient) + call mpas_pool_get_array(forcingPool, 'filteredSSHGradientZonal', filteredSSHGradientZonal) + call mpas_pool_get_array(forcingPool, 'filteredSSHGradientMeridional', filteredSSHGradientMeridional) + filteredSSHGradientZonal = avgSSHGradient(index_avgZonalSSHGradient, :) + filteredSSHGradientMeridional = avgSSHGradient(index_avgMeridionalSSHGradient, :) + block_ptr => block_ptr % next + end do + endif + !----------------------------------------------------------------------- ! ! send intial state to driver @@ -768,6 +795,13 @@ subroutine ocn_run_mct( EClock, cdata_o, x2o_o, o2x_o)!{{{ logical, pointer :: config_write_output_on_startup character (len=StrKIND), pointer :: config_restart_timestamp_name + ! Added for coupling interval initialization + integer, pointer :: index_avgZonalSSHGradient, index_avgMeridionalSSHGradient + real (kind=RKIND), dimension(:), pointer :: filteredSSHGradientZonal, filteredSSHGradientMeridional + real (kind=RKIND), dimension(:,:), pointer :: avgSSHGradient + real (kind=RKIND), pointer :: config_ssh_grad_relax_timescale + real (kind=RKIND) :: timeFilterFactor + iam = domain % dminfo % my_proc_id call mpas_io_units_set_stdout(ocnStdOutUnit) call mpas_io_units_set_stderr(ocnStdErrUnit) @@ -903,6 +937,31 @@ subroutine ocn_run_mct( EClock, cdata_o, x2o_o, o2x_o)!{{{ write(stderrUnit,*) 'Completed timestep ', trim(timeStamp) end do + ! update coupled variables that get calculated on coupling intervals + ! NOTE: could be moved to subroutine + ! time filter ssh gradient + block_ptr => domain_ptr % blocklist + do while(associated(block_ptr)) + call mpas_pool_get_subpool(block_ptr % structs, 'forcing', forcingPool) + call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientZonal', index_avgZonalSSHGradient) + call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientMeridional', index_avgMeridionalSSHGradient) + call mpas_pool_get_array(forcingPool, 'avgSSHGradient', avgSSHGradient) + call mpas_pool_get_array(forcingPool, 'filteredSSHGradientZonal', filteredSSHGradientZonal) + call mpas_pool_get_array(forcingPool, 'filteredSSHGradientMeridional', filteredSSHGradientMeridional) + call mpas_pool_get_config(domain % configs, 'config_ssh_grad_relax_timescale', & + config_ssh_grad_relax_timescale) + if (config_ssh_grad_relax_timescale < real(ocn_cpl_dt,RKIND)) then + timeFilterFactor = 1.0_RKIND + else + timeFilterFactor = real(ocn_cpl_dt,RKIND) / config_ssh_grad_relax_timescale + endif + filteredSSHGradientZonal = filteredSSHGradientZonal * (1.0_RKIND - timeFilterFactor) + & + avgSSHGradient(index_avgZonalSSHGradient, :) * timeFilterFactor + filteredSSHGradientMeridional = filteredSSHGradientMeridional * (1.0_RKIND - timeFilterFactor) + & + avgSSHGradient(index_avgMeridionalSSHGradient, :) * timeFilterFactor + block_ptr => block_ptr % next + end do + ! Check if coupler wants us to write a restart file. ! We only write restart files at the end of a coupling interval if (seq_timemgr_RestartAlarmIsOn(EClock)) then @@ -1868,8 +1927,7 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ integer :: i, n integer, pointer :: nCellsSolve, index_temperatureSurfaceValue, index_salinitySurfaceValue, & - index_avgZonalSurfaceVelocity, index_avgMeridionalSurfaceVelocity, & - index_avgZonalSSHGradient, index_avgMeridionalSSHGradient + index_avgZonalSurfaceVelocity, index_avgMeridionalSurfaceVelocity type (block_type), pointer :: block_ptr @@ -1897,7 +1955,7 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ avgOceanSurfaceFeParticulate, & avgOceanSurfaceFeDissolved - real (kind=RKIND), dimension(:,:), pointer :: avgTracersSurfaceValue, avgSurfaceVelocity, avgSSHGradient, & + real (kind=RKIND), dimension(:,:), pointer :: avgTracersSurfaceValue, avgSurfaceVelocity, & avgOceanSurfacePhytoC, & avgOceanSurfaceDOC, layerThickness @@ -1909,17 +1967,8 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ config_use_DMSTracers_sea_ice_coupling, & config_use_MacroMoleculesTracers_sea_ice_coupling - real(kind=RKIND), pointer :: & - config_ssh_grad_relax_timescale - - real(kind=RKIND) :: & - timeFilterFactor - logical :: keepFrazil - ! flag to check if this is the first export to allow setting of relaxed coupling variables. - logical :: firstExport = .true. - errorcode = 0 ! get configure options @@ -1933,8 +1982,6 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ config_use_DMSTracers_sea_ice_coupling) call mpas_pool_get_config(domain % configs, 'config_use_MacroMoleculesTracers_sea_ice_coupling', & config_use_MacroMoleculesTracers_sea_ice_coupling) - call mpas_pool_get_config(domain % configs, 'config_ssh_grad_relax_timescale', & - config_ssh_grad_relax_timescale) n = 0 block_ptr => domain % blocklist @@ -1951,15 +1998,12 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ call mpas_pool_get_dimension(forcingPool, 'index_avgSalinitySurfaceValue', index_salinitySurfaceValue) call mpas_pool_get_dimension(forcingPool, 'index_avgSurfaceVelocityZonal', index_avgZonalSurfaceVelocity) call mpas_pool_get_dimension(forcingPool, 'index_avgSurfaceVelocityMeridional', index_avgMeridionalSurfaceVelocity) - call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientZonal', index_avgZonalSSHGradient) - call mpas_pool_get_dimension(forcingPool, 'index_avgSSHGradientMeridional', index_avgMeridionalSSHGradient) call mpas_pool_get_array(statePool, 'layerThickness', layerThickness, 1) call mpas_pool_get_array(forcingPool, 'landIceMask', landIceMask) call mpas_pool_get_array(forcingPool, 'avgTracersSurfaceValue', avgTracersSurfaceValue) call mpas_pool_get_array(forcingPool, 'avgSurfaceVelocity', avgSurfaceVelocity) - call mpas_pool_get_array(forcingPool, 'avgSSHGradient', avgSSHGradient) call mpas_pool_get_array(forcingPool, 'filteredSSHGradientZonal', filteredSSHGradientZonal) call mpas_pool_get_array(forcingPool, 'filteredSSHGradientMeridional', filteredSSHGradientMeridional) if ( frazilIceActive ) then @@ -1997,27 +2041,6 @@ subroutine ocn_export_mct(o2x_o, errorCode) !{{{ ! call mpas_pool_get_array(forcingPool, 'DMSFlux', DMSFlux) ! call mpas_pool_get_array(forcingPool, 'surfaceUpwardCO2Flux', surfaceUpwardCO2Flux) - ! time filter ssh gradient - if (firstExport .and. trim(runtype) == "initial") then - filteredSSHGradientZonal = avgSSHGradient(index_avgZonalSSHGradient, :) - filteredSSHGradientMeridional = avgSSHGradient(index_avgMeridionalSSHGradient, :) - firstExport = .false. - else - - if (config_ssh_grad_relax_timescale < real(ocn_cpl_dt,RKIND)) then - timeFilterFactor = 1.0_RKIND - else - timeFilterFactor = real(ocn_cpl_dt,RKIND) / config_ssh_grad_relax_timescale - endif - - filteredSSHGradientZonal = filteredSSHGradientZonal * (1.0_RKIND - timeFilterFactor) + & - avgSSHGradient(index_avgZonalSSHGradient, :) * timeFilterFactor - - filteredSSHGradientMeridional = filteredSSHGradientMeridional * (1.0_RKIND - timeFilterFactor) + & - avgSSHGradient(index_avgMeridionalSSHGradient, :) * timeFilterFactor - - endif - do i = 1, nCellsSolve n = n + 1 From 7d5e40f54629ed2b28ace45b94aa14d4cc7fc274 Mon Sep 17 00:00:00 2001 From: Jon Wolfe Date: Mon, 27 Feb 2017 15:04:00 -0800 Subject: [PATCH 3/7] Update to version of mpas-o with new arrays included in restart files. --- components/mpas-o/model | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/mpas-o/model b/components/mpas-o/model index 06040def32c7..7a1d1a6dc08b 160000 --- a/components/mpas-o/model +++ b/components/mpas-o/model @@ -1 +1 @@ -Subproject commit 06040def32c79948f280c433788d02fbee2e6e52 +Subproject commit 7a1d1a6dc08b5fdabf29de1f9d669254e528022e From 7cf7f88912eb138aabd320358d7b1eb0ae2dbd19 Mon Sep 17 00:00:00 2001 From: Mark Petersen Date: Tue, 28 Feb 2017 10:16:43 -0700 Subject: [PATCH 4/7] Split seaSurfacePressure into atmosphericPressure and seaIcePressure --- components/mpas-o/cime_config/buildnml | 3 ++- components/mpas-o/driver/ocn_comp_mct.F | 35 +++++++++++++++---------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/components/mpas-o/cime_config/buildnml b/components/mpas-o/cime_config/buildnml index 2c4792ae2864..1e185736e67b 100755 --- a/components/mpas-o/cime_config/buildnml +++ b/components/mpas-o/cime_config/buildnml @@ -312,7 +312,8 @@ if ( -e "$CASEROOT/SourceMods/src.mpaso/$STREAM_NAME" ) { print $stream_file ' ' . "\n"; print $stream_file ' ' . "\n"; print $stream_file ' ' . "\n"; - print $stream_file ' ' . "\n"; + print $stream_file ' ' . "\n"; + print $stream_file ' ' . "\n"; print $stream_file ' ' . "\n"; print $stream_file ' ' . "\n"; print $stream_file ' ' . "\n"; diff --git a/components/mpas-o/driver/ocn_comp_mct.F b/components/mpas-o/driver/ocn_comp_mct.F index dc1effeb0fec..c70123aa5487 100644 --- a/components/mpas-o/driver/ocn_comp_mct.F +++ b/components/mpas-o/driver/ocn_comp_mct.F @@ -1450,8 +1450,8 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ seaIceSalinityFluxField, & riverRunoffFluxField, iceRunoffFluxField, & shortWaveHeatFluxField, rainFluxField, & - seaSurfacePressureField, iceFractionField, & - windSpeedSquared10mField, & + atmosphericPressureField, iceFractionField, & + seaIcePressureField, windSpeedSquared10mField, & iceFluxDICField, & iceFluxDONField, & iceFluxNO3Field, & @@ -1476,8 +1476,8 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ seaIceSalinityFlux, & riverRunoffFlux, iceRunoffFlux, & shortWaveHeatFlux, rainFlux, & - seaSurfacePressure, iceFraction, & - windSpeedSquared10m, & + atmosphericPressure, iceFraction, & + seaIcePressure, windSpeedSquared10m, & iceFluxDIC, & iceFluxDON, & iceFluxNO3, & @@ -1544,7 +1544,8 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ call mpas_pool_get_field(forcingPool, 'iceRunoffFlux', iceRunoffFluxField) call mpas_pool_get_field(forcingPool, 'shortWaveHeatFlux', shortWaveHeatFluxField) call mpas_pool_get_field(forcingPool, 'rainFlux', rainFluxField) - call mpas_pool_get_field(forcingPool, 'seaSurfacePressure', seaSurfacePressureField) + call mpas_pool_get_field(forcingPool, 'atmosphericPressure', atmosphericPressureField) + call mpas_pool_get_field(forcingPool, 'seaIcePressure', seaIcePressureField) call mpas_pool_get_field(forcingPool, 'iceFraction', iceFractionField) call mpas_pool_get_field(forcingPool, 'iceRunoffFlux', iceRunoffFluxField) @@ -1563,7 +1564,8 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ iceRunoffFlux => iceRunoffFluxField % array shortWaveHeatFlux => shortWaveHeatFluxField % array rainFlux => rainFluxField % array - seaSurfacePressure => seaSurfacePressureField % array + atmosphericPressure => atmosphericPressureField % array + seaIcePressure => seaIcePressureField % array iceFraction => iceFractionField % array iceRunoffFlux => iceRunoffFluxField % array @@ -1666,11 +1668,12 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ if ( rainFluxField % isActive ) then rainFlux(i) = x2o_o % rAttr(index_x2o_Faxa_rain, n) end if - if ( seaSurfacePressureField % isActive ) then - ! Set seaSurfacePressure to be the sum of atmospheric bottom pressure - ! and a limited version of sea ice pressure where it limits it to 5m of pressure - seaSurfacePressure(i) = x2o_o % rAttr(index_x2o_Sa_pbot, n) & - + min( x2o_o % rAttr(index_x2o_Si_bpress, n), config_density0 * gravity * 5.0_RKIND ) + if ( atmosphericPressureField % isActive ) then + atmosphericPressure(i) = x2o_o % rAttr(index_x2o_Sa_pbot, n) + end if + if ( seaIcePressureField % isActive ) then + ! Set seaIcePressure to be limited to 5m of pressure + seaIcePressure(i) = min( x2o_o % rAttr(index_x2o_Si_bpress, n), config_density0 * gravity * 5.0_RKIND ) end if if ( iceFractionField % isActive ) then iceFraction(i) = x2o_o % rAttr(index_x2o_Si_ifrac, n) @@ -1753,7 +1756,8 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ call mpas_pool_get_field(forcingPool, 'iceRunoffFlux', iceRunoffFluxField) call mpas_pool_get_field(forcingPool, 'shortWaveHeatFlux', shortWaveHeatFluxField) call mpas_pool_get_field(forcingPool, 'rainFlux', rainFluxField) - call mpas_pool_get_field(forcingPool, 'seaSurfacePressure', seaSurfacePressureField) + call mpas_pool_get_field(forcingPool, 'atmosphericPressure', atmosphericPressureField) + call mpas_pool_get_field(forcingPool, 'seaIcePressure', seaIcePressureField) call mpas_pool_get_field(forcingPool, 'iceFraction', iceFractionField) call mpas_pool_get_field(forcingPool, 'iceRunoffFlux', iceRunoffFluxField) @@ -1831,8 +1835,11 @@ subroutine ocn_import_mct(x2o_o, errorCode)!{{{ if ( rainFluxField % isActive ) then call mpas_dmpar_exch_halo_field(rainFluxField) end if - if ( seaSurfacePressureField % isActive ) then - call mpas_dmpar_exch_halo_field(seaSurfacePressureField) + if ( atmosphericPressureField % isActive ) then + call mpas_dmpar_exch_halo_field(atmosphericPressureField) + end if + if ( seaIcePressureField % isActive ) then + call mpas_dmpar_exch_halo_field(seaIcePressureField) end if if ( iceFractionField % isActive ) then call mpas_dmpar_exch_halo_field(iceFractionField) From 8a18b3c21ff1176f9ecc0fae622a635d75c5796a Mon Sep 17 00:00:00 2001 From: Jon Wolfe Date: Tue, 28 Feb 2017 14:05:03 -0800 Subject: [PATCH 5/7] Improve default mpas-cice history output --- components/mpas-cice/cime_config/buildnml | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/components/mpas-cice/cime_config/buildnml b/components/mpas-cice/cime_config/buildnml index 5f149240f4b8..94ed432f56c4 100755 --- a/components/mpas-cice/cime_config/buildnml +++ b/components/mpas-cice/cime_config/buildnml @@ -276,8 +276,17 @@ if ( -e "$CASEROOT/SourceMods/src.mpascice/$STREAM_NAME" ) { print $stream_file ' type="output"' . "\n"; print $stream_file ' filename_template="mpascice.hist.$Y-$M-$D_$S.nc"' . "\n"; print $stream_file ' filename_interval="01-00-00_00:00:00"' . "\n"; - print $stream_file ' clobber_mode="replace_files"' . "\n"; - print $stream_file ' output_interval="none" >' . "\n"; + print $stream_file ' clobber_mode="truncate"' . "\n"; + print $stream_file ' output_interval="00-01-00_00:00:00">' . "\n"; + print $stream_file '' . "\n"; + print $stream_file ' ' . "\n"; + print $stream_file ' ' . "\n"; + print $stream_file ' ' . "\n"; + print $stream_file ' ' . "\n"; + print $stream_file ' ' . "\n"; + print $stream_file ' ' . "\n"; + print $stream_file ' ' . "\n"; + print $stream_file ' ' . "\n"; print $stream_file '' . "\n"; print $stream_file '' . "\n"; print $stream_file '' . "\n"; From 1cdaedaab335be8b3bf5c77c718e3d9290222e0d Mon Sep 17 00:00:00 2001 From: Mark Petersen Date: Wed, 1 Mar 2017 09:26:53 -0700 Subject: [PATCH 6/7] Update submodule cores The purpose is to get the changes in MPAS-O required for tiger striping. Updates to framework in all three cores come along for the ride, but CIME 5.2 commit is not included. --- components/mpas-cice/model | 2 +- components/mpas-o/model | 2 +- components/mpasli/model | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/components/mpas-cice/model b/components/mpas-cice/model index 4c9387e5666e..a6fc8b178646 160000 --- a/components/mpas-cice/model +++ b/components/mpas-cice/model @@ -1 +1 @@ -Subproject commit 4c9387e5666e8d8c22c395c000baf6c327fdce99 +Subproject commit a6fc8b17864643fb2fc3dbcacf3909f98f0bba4e diff --git a/components/mpas-o/model b/components/mpas-o/model index 7a1d1a6dc08b..68fbc557792d 160000 --- a/components/mpas-o/model +++ b/components/mpas-o/model @@ -1 +1 @@ -Subproject commit 7a1d1a6dc08b5fdabf29de1f9d669254e528022e +Subproject commit 68fbc557792dbded1814e4d0f948e9b3eabe1c0f diff --git a/components/mpasli/model b/components/mpasli/model index d8c93396ed48..44d6a1460d67 160000 --- a/components/mpasli/model +++ b/components/mpasli/model @@ -1 +1 @@ -Subproject commit d8c93396ed480467d4c5948db04dd46e612e1764 +Subproject commit 44d6a1460d670bef829e8c020def59e770bc986b From 9d22e722395cb3f4dd376c31e5b1decacb8e7dac Mon Sep 17 00:00:00 2001 From: Jon Wolfe Date: Wed, 1 Mar 2017 11:03:21 -0800 Subject: [PATCH 7/7] Update ocn/ice initial condition files for oEC60to30v3_ICG grid --- components/mpas-cice/cime_config/buildnml | 4 ++-- components/mpas-o/cime_config/buildnml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/components/mpas-cice/cime_config/buildnml b/components/mpas-cice/cime_config/buildnml index 94ed432f56c4..2adc36878d3e 100755 --- a/components/mpas-cice/cime_config/buildnml +++ b/components/mpas-cice/cime_config/buildnml @@ -62,8 +62,8 @@ if ( $ICE_GRID eq 'oEC60to30' ) { $decomp_date .= '161222'; $decomp_prefix .= 'mpas-cice.graph.info.'; } elsif ( $ICE_GRID eq 'oEC60to30v3_ICG' ) { - $grid_date .= '170213'; - $grid_prefix .= 'seaice.EC60to30v3.a16q_smRi_yr102'; + $grid_date .= '170301'; + $grid_prefix .= 'seaice.EC60to30v3.restartFrom_anvil0221'; $decomp_date .= '161222'; $decomp_prefix .= 'mpas-cice.graph.info.'; } elsif ( $ICE_GRID eq 'oEC60to30wLI' ) { diff --git a/components/mpas-o/cime_config/buildnml b/components/mpas-o/cime_config/buildnml index 1e185736e67b..6ccf6562895b 100755 --- a/components/mpas-o/cime_config/buildnml +++ b/components/mpas-o/cime_config/buildnml @@ -64,8 +64,8 @@ if ( $OCN_GRID eq 'oEC60to30' ) { } elsif ( $OCN_GRID eq 'oEC60to30v3_ICG' ) { $grid_date .= '161222'; $grid_prefix .= 'oEC60to30v3'; - $ic_date .= '170213'; - $ic_prefix .= 'oEC60to30v3.a16q_smRi_yr102'; + $ic_date .= '170301'; + $ic_prefix .= 'oEC60to30v3.restartFrom_anvil0221'; $decomp_prefix .= 'mpas-o.graph.info.'; } elsif ( $OCN_GRID eq 'oEC60to30wLI' ) { $grid_date .= '160830';