Skip to content

Conversation

@caozd999
Copy link

@caozd999 caozd999 commented May 8, 2020

This PR adds two test cases that analyze the effects of salt marsh on coastal flooding.
The cases implement marsh as a bottom drag in idealized land-coast-ocean transects. Each case includes two comparison experiments to show the effects of marsh width on coastal flooding.

caozd999 and others added 30 commits December 3, 2019 10:22
SedimentFluxIndex - I

SedimentFluxIndex -I
add the following files
- Registry_sediment_flux_index.xml
- mpas_con_sediment_flux_index.F

sedimentFluxIndex - I update
add four variables
- sedimentFluxIndexVAX : Vertically-Averaged sFI in X-direction
- sedimentFluxIndexVAY : Vertically-Averaged sFI in Y-direction
- sedimentFluxIndexBX: Bottom sFI in X-direction
- sedimentFluxIndexBY: Bottom sFI in Y-direction

Adds sediment flux calculation

calculate sediment fall velocity by Goldstein and Coco 2013
calculate ratio "a" of sediment flux Q and U3 by Grawe et al 2014
calculate vertically-averaged and close bottom sediment flux (kg/m/s)
test the AM on the case ziso/2.5km/default

Add Soulsby and Damgaard bedload transport formulae

Goldstein and Coco's fall velocity equation seems to overestimate Ws,
might be repaced by VanRijn [1989] or Zhu &  Cheng [1993] in next commit
Add three bedload transport formulae and four sediment fall velocity formulae

Bedload transport formulae
- Soulbsy-Damgaard [2005]
- Meyer-Peter-Meuller [1948]
- Engelund-Hansen [1967]
Sediment fall velocity formulae
- Goldstein-Coco2013
- VanRijn1993
- Soulsby1997
- Cheng1997

Add Manning equation to calculate Chezy roughnes coefficient
in Engelund-Hansen bedload formula.

The Manning equaiton reads:
Chezy = 1/Manning*(bottomDepth)^(1/6)
Chezy value is manually restricted between [20 ,100]

Add suspended sediment concentration (SSC) algorithms

SSC is solved by bottom reference concentration and Rouse profile
Bottom reference concentration is computed by one of the following formulae
- Lee et al., 2004
- Goldstein et al., 2014
- Zyserman-Fredsoe 1997
Rouse profle assumes the eddy diffusivity to vary parabolically with height

Fixed bugs in calculations of SSC and theta in sediment_transport.F

Fixed two bugs in mpas_ocn_sediment_transport.F

- Corrected SSC Rouse profile equation
  The old equation from Page 138 of Soulsby's book "Dynamics of Marine
  Snads" (1997) is wrong. The right equation(s) can be found in
  (1) van Rijn 1984: Sediment Transport, Phase II: Suspended Load
  Transport. J. Hydraul. Eng.
  (2) Wang 2012: Measuring and Modeling Suspended Sediment Concentration
  Profile in the Surf Zone. Marine Sedimentology
- Corrected z-coordinate calculation
  The global variable zMid is zero at surface and negative downward. The
  water depth from bottom z was mistakely set to -zMid. Now the calculation
  is z=ssh+bottomDepth+zMid

Fixed a bug in mpas_ocn_sediment_transport.F

zMid is the distance from the mean surface layer, with positve upward.
So for each vertical layer center, the distance above the sea bottom is
bottomDepth+zMid, which was wrongly set as ssh+bottomDepth+zMid in the
last commit.

Replaced Rouse profile equation by van Rijn's equations; modified xml
files to output ssh, mesh and velocity in sediment transport output file.

Mannually set a maximum value for Rouse number to avoid "Float-point
exception" error; fixed a bug in the implementation of
'Zyserman-Fredsoe1994' equation.
…coastal

This PR adds sediment transport analysis member (Phase I) to the model,
with the following variables computed:
- sediment settling velocity
- sediment erosion flux
- sediment bedload transport flux
- suspended sediment concentration in water column
Adds examples of JIGSAW workflow for coastal cases.
  Adds HI refined case
  West coast mesh from SF to LA
This currently only affects coastal test cases.
This should let us set $CARTOPY_DIR in a compass activation
script on LANL IC
Fixes analysis script based on new xarray api
…ean/coastal

Near as I can tell, this script is not used and the test case works
without it.

closes MPAS-Dev#431
Adds spatially-variable Cd and Mannings n drag
capabilities.

Adds comparison of different use for Cd:
ocean/drying_slope/zstar_variableCd/1km

Adds variable Manning's n drying slope:
ocean/drying_slope/zstar_variableManningn/1km
Adds spatially variable drag coefficient capability
based on Cd and n.
Refractors the zstar test case to allow for above-land wetting/drying.
…above_land

Refractors the zstar test case to allow for above-land wetting/drying in a new test case.

 * Adds drying slope wetting and drying above land
Switch COMPASS from basemap to cartopy
 - Add missing +1 offset to cell IDs used in the points.nc file
   generated in the init step of the hurricane Sandy cases.
…oastal

Fix bug in pointwiseStats locations for Sandy cases

Simple 0 vs 1 offset error
 - Includes the hurricane_wind_pressure code from Donatella Pasqualini
   that interpolates a parametric wind field onto the MPAS-O mesh

 - New test case (ocean/hurricane/USDEQU120at30cr10rr2/synthetic_sandy)
   includes a tidal spin-up period before the storm winds begin.

   This is needed because the storm winds only cover a 3 day period prior to
   landfall (not enough time to spin-up tides accurately)

 - Also, adds the ability to delay the ramp for the atmospheric forcing.
   In this case this is used to delay the wind/pressure forcing ramp until
   after the tidal spin-up.
@mark-petersen mark-petersen requested a review from pwolfram May 9, 2020 04:24
@pwolfram pwolfram changed the title Coastal/marsh_case Adds a marsh flooding coastal case May 11, 2020
caozd999 and others added 2 commits May 19, 2020 14:10
…s_implicitCd into ocean/coastal

Fixes implicitCd computation bug in mpas_ocn_vmix.F

Previously we missed a factor of 0.5 within parentheses, which will slightly boost
Cd by a factor of approximately 2.5, to increase drag felt in simulation for a given
Manning's n value.
@caozd999
Copy link
Author

Probably don't need -- linked by COMPASS scripts.

@caozd999 caozd999 closed this May 19, 2020
@caozd999 caozd999 reopened this May 20, 2020
@caozd999 caozd999 force-pushed the coastal/marsh_case branch from 13625af to eaa9952 Compare May 20, 2020 21:56
Copy link
Contributor

@pwolfram pwolfram left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please see comments below. Am testing these now-- how long did cases run for you on grizzly @caozd999 ?

call mpas_log_write('Right boundary must be deeper than left boundary!', MPAS_LOG_CRIT)
end if

! Set refBottomDepth, bottomDepth, and maxLevelCell
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is inconsistent with previous code: https://github.com/MPAS-Dev/MPAS-Model/pull/552/files#diff-6270014bc9ae9b8554f8af50127caf5fR263-R267 and seems to assume config_tidal_boundary_left_bottom_depth = 0. The need to modify this is to accomodate other test cases of this type that may have config_tidal_boundary_right_bottom_depth /=0.

 ! Set refBottomDepth, bottomDepth, and maxLevelCell
      do k = 1, nVertLevels
        refBottomDepth(k) = config_tidal_boundary_left_bottom_depth + &
          (config_tidal_boundary_right_bottom_depth - config_tidal_boundary_left_bottom_depth)* interfaceLocations(k+1)
      end do

if (config_use_wetting_drying .and. config_tidal_start_dry) then
do iCell = 1, nCellsSolve
ssh(iCell) = -bottomDepth(iCell) + config_drying_min_cell_height*maxLevelCell(iCell)
ssh(iCell) = MAX(ssh(iCell),-config_tidal_forcing_monochromatic_baseline) !Zhendong Mar-06-2020
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@caozd999, can you please explain the purpose here?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In shared/mpas_ocn_tidal_forcing.F, the tidalHeight is computed as

tidalHeight = config_tidal_forcing_monochromatic_amp * & SIN(2.0_RKIND*pii/config_tidal_forcing_monochromatic_period *daysSinceStartOfSim - & pii*config_tidal_forcing_monochromatic_phaseLag/180.0_RKIND) - & config_tidal_forcing_monochromatic_baseline

So adding the line

ssh(iCell) = MAX(ssh(iCell),-config_tidal_forcing_monochromatic_baseline)

will ensure that tides propagate just on top of the initial ssh, instead of possibly having a distance above the initial ssh.

@@ -0,0 +1,150 @@
#!/usr/bin/env python
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modularize?

<namelist name="namelist.ocean" mode="forward">
<template file="forward_template.xml" path_base="script_configuration_dir"/>
<option name="config_Rayleigh_friction">.false.</option>
<option name="config_Rayleigh_damping_depth_variable">.false.</option>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Template?

<template file="forward_template.xml" path_base="script_configuration_dir"/>
<option name="config_Rayleigh_friction">.false.</option>
<option name="config_Rayleigh_damping_depth_variable">.false.</option>
<option name="config_use_implicit_bottom_drag">.false.</option>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Template?

<option name="config_use_variable_drag">.true.</option>
<option name="config_idealized_profile">.true.</option>
<option name="config_idealized_profile_Lcoast">0.3</option>
<option name="config_idealized_profile_Scoast">0.001</option>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Template?

@@ -0,0 +1,213 @@
#!/usr/bin/env python
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modularize?

@pwolfram
Copy link
Contributor

@caozd999, can you please do a rebase on ocean/coastal?

@pwolfram pwolfram self-assigned this May 27, 2020
@pwolfram
Copy link
Contributor

Testing 250m

dryingslopecomparison

Result consistent with one shown above and will retest following PR edits.

@pwolfram
Copy link
Contributor

@caozd999, can we please finish this PR this week to merge?

@pwolfram
Copy link
Contributor

Need to merge #595 before this case.

@sbrus89
Copy link

sbrus89 commented Aug 17, 2020

This has been replaced with #651.

@sbrus89 sbrus89 closed this Aug 17, 2020
@caozd999
Copy link
Author

This has been replaced with #651.

Thanks @sbrus89, I agree with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants