Skip to content
This repository has been archived by the owner on Oct 23, 2020. It is now read-only.

Ocean/layer volume weighted mask #1292

Open
wants to merge 11 commits into
base: ocean/develop
Choose a base branch
from
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<dims>
<dim name="nLayerVolWeightedAvgFields" definition="18" units="unitless"
<dim name="nLayerVolWeightedAvgFields" definition="15" units="unitless"
description="A number equal to or greater than the number of var arrays in the layerVolumeWeightedAverageAM var structure below."
/>
<dim name="nOceanRegionsTmp" definition="7" units="unitless"
Expand Down Expand Up @@ -27,6 +27,14 @@
description="Name of the string that should be tied to the layer volume weighted average analysis member"
possible_values="Any existing stream name or 'none'"
/>
<nml_option name="config_AM_layerVolumeWeightedAverage_compute_predef_regions" type="logical" default_value=".true." units="unitless"
description="Computes predefined regions. (Does not require a region mask file.)"
possible_values=".true. or .false."
/>
<nml_option name="config_AM_layerVolumeWeightedAverage_region_group" type="character" default_value="" units="unitless"
description="The name of the region group, for which surface area weighted averages should be computed in addition to the global version."
possible_values="'all', '', or the name of a region group."
/>
</nml_record>
<packages>
<package name="layerVolumeWeightedAverageAMPKG" description="This package includes variables required for the areal-averaging of 3D variables that are defined."/>
Expand Down Expand Up @@ -314,43 +322,288 @@
description="Average relative enstrophy within region volume"
/>
</var_array>
</var_struct>
<var_struct name="layerVolumeWeightedAverageAMScratch" time_levs="1">
<var name="workMaskLayerVolume"
persistence="scratch"
type="real"
dimensions="nCells Time"
units="none"
description="temporary array of 0 or 1 to mask data via multiplication"
/>
<var name="workArrayLayerVolume"
persistence="scratch"
type="real"
dimensions="nLayerVolWeightedAvgFields nCells Time"
units="various"
description="temporary array to hold data to be analyzed"
/>
<var name="workMinLayerVolume"
persistence="scratch"
type="real"
dimensions="nLayerVolWeightedAvgFields Time"
units="various"
description="temporary array to hold minimum values"
/>
<var name="workMaxLayerVolume"
persistence="scratch"
type="real"
dimensions="nLayerVolWeightedAvgFields Time"
units="various"
description="temporary array to hold maximum values"
/>
<var name="workSumLayerVolume"
persistence="scratch"
type="real"
dimensions="nLayerVolWeightedAvgFields Time"
units="various"
description="temporary array to hold sum of values"
/>
<var_array name="minValueWithinOceanLayerRegionMask" type="real" dimensions="nVertLevels maxRegionsInGroup Time">
<var name="minLayerMaskValueRegionMask" array_group="layerMinsRegionMask" units="none"
description="Minimum value of mask within region layer (should always be 1 for valid layers)"
/>
<var name="minLayerAreaRegionMask" array_group="layerMinsRegionMask" units="m^2"
description="Minimum area of cell within region layer"
/>
<var name="minLayerThicknessRegionMask" array_group="layerMinsRegionMask" units="m"
description="Minimum thickness within region layer"
/>
<var name="minLayerDensityRegionMask" array_group="layerMinsRegionMask" units="kg m^{-3}"
description="Minimum in-situ density within region layer"
/>
<var name="minLayerPotentialDensityRegionMask" array_group="layerMinsRegionMask" units="kg m^{-3}"
description="Minimum potential density within region layer"
/>
<var name="minLayerBruntVaisalaFreqTopRegionMask" array_group="layerMinsRegionMask" units="s^{-2}"
description="Minimum Brunt Vaisala frequency within region layer"
/>
<var name="minLayerVelocityZonalRegionMask" array_group="layerMinsRegionMask" units="m s^{-1}"
description="Minimum zonal velocity within region layer"
/>
<var name="minLayerVelocityMeridionalRegionMask" array_group="layerMinsRegionMask" units="m s^{-1}"
description="Minimum meridional velocity within region layer"
/>
<var name="minLayerVertVelocityTopRegionMask" array_group="layerMinsRegionMask" units="m s^{-1}"
description="Minimum vertical velocity within region layer"
/>
<var name="minLayerTemperatureRegionMask" array_group="layerMinsRegionMask" units="C"
description="Minimum surface temperature within region layer"
/>
<var name="minLayerSalinityRegionMask" array_group="layerMinsRegionMask" units="PSU"
description="Minimum surface salinity within region layer"
/>
<var name="minLayerKineticEnergyCellRegionMask" array_group="layerMinsRegionMask" units="m^2 s^{-2}"
description="Minimum kinetic energy within region layer"
/>
<var name="minLayerRelativeVorticityCellRegionMask" array_group="layerMinsRegionMask" units="s^{-1}"
description="Minimum relative vorticity within region layer"
/>
<var name="minLayerDivergenceRegionMask" array_group="layerMinsRegionMask" units="s^{-1}"
description="Minimum divergence within region layer"
/>
<var name="minLayerRelativeEnstrophyCellRegionMask" array_group="layerMinsRegionMask" units="s^{-2}"
description="Minimum relative enstrophy within region layer"
/>
</var_array>
<var_array name="minValueWithinOceanVolumeRegionMask" type="real" dimensions="maxRegionsInGroup Time">
<var name="minVolumeMaskValueRegionMask" array_group="volumeMinsRegionMask" units="none"
description="Minimum value of mask within region volume (should always be 1 for valid volumes)"
/>
<var name="minVolumeAreaRegionMask" array_group="volumeMinsRegionMask" units="m^2"
description="Minimum area of cell within region volume"
/>
<var name="minVolumeThicknessRegionMask" array_group="volumeMinsRegionMask" units="m"
description="Minimum thickness within region volume"
/>
<var name="minVolumeDensityRegionMask" array_group="volumeMinsRegionMask" units="kg m^{-3}"
description="Minimum in-situ density within region volume"
/>
<var name="minVolumePotentialDensityRegionMask" array_group="volumeMinsRegionMask" units="kg m^{-3}"
description="Minimum potential density within region volume"
/>
<var name="minVolumeBruntVaisalaFreqTopRegionMask" array_group="volumeMinsRegionMask" units="s^{-2}"
description="Minimum Brunt Vaisala frequency within region volume"
/>
<var name="minVolumeVelocityZonalRegionMask" array_group="volumeMinsRegionMask" units="m s^{-1}"
description="Minimum zonal velocity within region volume"
/>
<var name="minVolumeVelocityMeridionalRegionMask" array_group="volumeMinsRegionMask" units="m s^{-1}"
description="Minimum meridional velocity within region volume"
/>
<var name="minVolumeVertVelocityTopRegionMask" array_group="volumeMinsRegionMask" units="m s^{-1}"
description="Minimum vertical velocity within region volume"
/>
<var name="minVolumeTemperatureRegionMask" array_group="volumeMinsRegionMask" units="C"
description="Minimum surface temperature within region volume"
/>
<var name="minVolumeSalinityRegionMask" array_group="volumeMinsRegionMask" units="PSU"
description="Minimum surface salinity within region volume"
/>
<var name="minVolumeKineticEnergyCellRegionMask" array_group="volumeMinsRegionMask" units="m^2 s^{-2}"
description="Minimum kinetic energy within region volume"
/>
<var name="minVolumeRelativeVorticityCellRegionMask" array_group="volumeMinsRegionMask" units="s^{-1}"
description="Minimum relative vorticity within region volume"
/>
<var name="minVolumeDivergenceRegionMask" array_group="volumeMinsRegionMask" units="s^{-1}"
description="Minimum divergence within region volume"
/>
<var name="minVolumeRelativeEnstrophyCellRegionMask" array_group="volumeMinsRegionMask" units="s^{-2}"
description="Minimum relative enstrophy within region volume"
/>
</var_array>
<var_array name="maxValueWithinOceanLayerRegionMask" type="real" dimensions="nVertLevels maxRegionsInGroup Time">
<var name="maxLayerMaskValueRegionMask" array_group="layerMaxsRegionMask" units="none"
description="Maximum value of mask within region layer (should always be 1 for valid layers)"
/>
<var name="maxLayerAreaRegionMask" array_group="layerMaxsRegionMask" units="m^2"
description="Maximum area of cell within region layer"
/>
<var name="maxLayerThicknessRegionMask" array_group="layerMaxsRegionMask" units="m"
description="Maximum thickness within region layer"
/>
<var name="maxLayerDensityRegionMask" array_group="layerMaxsRegionMask" units="kg m^{-3}"
description="Maximum in-situ density within region layer"
/>
<var name="maxLayerPotentialDensityRegionMask" array_group="layerMaxsRegionMask" units="kg m^{-3}"
description="Maximum potential density within region layer"
/>
<var name="maxLayerBruntVaisalaFreqTopRegionMask" array_group="layerMaxsRegionMask" units="s^{-2}"
description="Maximum Brunt Vaisala frequency within region layer"
/>
<var name="maxLayerVelocityZonalRegionMask" array_group="layerMaxsRegionMask" units="m s^{-1}"
description="Maximum zonal velocity within region layer"
/>
<var name="maxLayerVelocityMeridionalRegionMask" array_group="layerMaxsRegionMask" units="m s^{-1}"
description="Maximum meridional velocity within region layer"
/>
<var name="maxLayerVertVelocityTopRegionMask" array_group="layerMaxsRegionMask" units="m s^{-1}"
description="Maximum vertical velocity within region layer"
/>
<var name="maxLayerTemperatureRegionMask" array_group="layerMaxsRegionMask" units="C"
description="Maximum surface temperature within region layer"
/>
<var name="maxLayerSalinityRegionMask" array_group="layerMaxsRegionMask" units="PSU"
description="Maximum surface salinity within region layer"
/>
<var name="maxLayerKineticEnergyCellRegionMask" array_group="layerMaxsRegionMask" units="m^2 s^{-2}"
description="Maximum kinetic energy within region layer"
/>
<var name="maxLayerRelativeVorticityCellRegionMask" array_group="layerMaxsRegionMask" units="s^{-1}"
description="Maximum relative vorticity within region layer"
/>
<var name="maxLayerDivergenceRegionMask" array_group="layerMaxsRegionMask" units="s^{-1}"
description="Maximum divergence within region layer"
/>
<var name="maxLayerRelativeEnstrophyCellRegionMask" array_group="layerMaxsRegionMask" units="s^{-2}"
description="Maximum relative enstrophy within region layer"
/>
</var_array>
<var_array name="maxValueWithinOceanVolumeRegionMask" type="real" dimensions="maxRegionsInGroup Time">
<var name="maxVolumeMaskValueRegionMask" array_group="volumeMaxsRegionMask" units="none"
description="Maximum value of mask within region volume (should always be 1 for valid volumes)"
/>
<var name="maxVolumeAreaRegionMask" array_group="volumeMaxsRegionMask" units="m^2"
description="Maximum area of cell within region volume"
/>
<var name="maxVolumeThicknessRegionMask" array_group="volumeMaxsRegionMask" units="m"
description="Maximum thickness within region volume"
/>
<var name="maxVolumeDensityRegionMask" array_group="volumeMaxsRegionMask" units="kg m^{-3}"
description="Maximum in-situ density within region volume"
/>
<var name="maxVolumePotentialDensityRegionMask" array_group="volumeMaxsRegionMask" units="kg m^{-3}"
description="Maximum potential density within region volume"
/>
<var name="maxVolumeBruntVaisalaFreqTopRegionMask" array_group="volumeMaxsRegionMask" units="s^{-2}"
description="Maximum Brunt Vaisala frequency within region volume"
/>
<var name="maxVolumeVelocityZonalRegionMask" array_group="volumeMaxsRegionMask" units="m s^{-1}"
description="Maximum zonal velocity within region volume"
/>
<var name="maxVolumeVelocityMeridionalRegionMask" array_group="volumeMaxsRegionMask" units="m s^{-1}"
description="Maximum meridional velocity within region volume"
/>
<var name="maxVolumeVertVelocityTopRegionMask" array_group="volumeMaxsRegionMask" units="m s^{-1}"
description="Maximum vertical velocity within region volume"
/>
<var name="maxVolumeTemperatureRegionMask" array_group="volumeMaxsRegionMask" units="C"
description="Maximum surface temperature within region volume"
/>
<var name="maxVolumeSalinityRegionMask" array_group="volumeMaxsRegionMask" units="PSU"
description="Maximum surface salinity within region volume"
/>
<var name="maxVolumeKineticEnergyCellRegionMask" array_group="volumeMaxsRegionMask" units="m^2 s^{-2}"
description="Maximum kinetic energy within region volume"
/>
<var name="maxVolumeRelativeVorticityCellRegionMask" array_group="volumeMaxsRegionMask" units="s^{-1}"
description="Maximum relative vorticity within region volume"
/>
<var name="maxVolumeDivergenceRegionMask" array_group="volumeMaxsRegionMask" units="s^{-1}"
description="Maximum divergence within region volume"
/>
<var name="maxVolumeRelativeEnstrophyCellRegionMask" array_group="volumeMaxsRegionMask" units="s^{-2}"
description="Maximum relative enstrophy within region volume"
/>
</var_array>
<var_array name="avgValueWithinOceanLayerRegionMask" type="real" dimensions="nVertLevels maxRegionsInGroup Time">
<var name="sumLayerMaskValueRegionMask" array_group="layerAvgsRegionMask" units="none"
description="Sum value of mask within region volume (should always be greater than 0 for valid layer)"
/>
<var name="avgLayerAreaRegionMask" array_group="layerAvgsRegionMask" units="m^2"
description="Average area of cell within region layer"
/>
<var name="avgLayerThicknessRegionMask" array_group="layerAvgsRegionMask" units="m"
description="Average thickness within region layer"
/>
<var name="avgLayerDensityRegionMask" array_group="layerAvgsRegionMask" units="kg m^{-3}"
description="Average in-situ density within region layer"
/>
<var name="avgLayerPotentialDensityRegionMask" array_group="layerAvgsRegionMask" units="kg m^{-3}"
description="Average potential density within region layer"
/>
<var name="avgLayerBruntVaisalaFreqTopRegionMask" array_group="layerAvgsRegionMask" units="s^{-2}"
description="Average Brunt Vaisala frequency within region layer"
/>
<var name="avgLayerVelocityZonalRegionMask" array_group="layerAvgsRegionMask" units="m s^{-1}"
description="Average zonal velocity within region layer"
/>
<var name="avgLayerVelocityMeridionalRegionMask" array_group="layerAvgsRegionMask" units="m s^{-1}"
description="Average meridional velocity within region layer"
/>
<var name="avgLayerVertVelocityTopRegionMask" array_group="layerAvgsRegionMask" units="m s^{-1}"
description="Average vertical velocity within region layer"
/>
<var name="avgLayerTemperatureRegionMask" array_group="layerAvgsRegionMask" units="C"
description="Average surface temperature within region layer"
/>
<var name="avgLayerSalinityRegionMask" array_group="layerAvgsRegionMask" units="PSU"
description="Average surface salinity within region layer"
/>
<var name="avgLayerKineticEnergyCellRegionMask" array_group="layerAvgsRegionMask" units="m^2 s^{-2}"
description="Average kinetic energy within region layer"
/>
<var name="avgLayerRelativeVorticityCellRegionMask" array_group="layerAvgsRegionMask" units="s^{-1}"
description="Average relative vorticity within region layer"
/>
<var name="avgLayerDivergenceRegionMask" array_group="layerAvgsRegionMask" units="s^{-1}"
description="Average divergence within region layer"
/>
<var name="avgLayerRelativeEnstrophyCellRegionMask" array_group="layerAvgsRegionMask" units="s^{-2}"
description="Average relative enstrophy within region layer"
/>
</var_array>
<var_array name="avgValueWithinOceanVolumeRegionMask" type="real" dimensions="maxRegionsInGroup Time">
<var name="sumVolumeMaskValueRegionMask" array_group="volumeAvgsRegionMask" units="none"
description="Sum value of mask within region volume (should always be greater than 0 for valid volumes)"
/>
<var name="avgVolumeAreaRegionMask" array_group="volumeAvgsRegionMask" units="m^2"
description="Average area of cell within region volume"
/>
<var name="avgVolumeThicknessRegionMask" array_group="volumeAvgsRegionMask" units="m"
description="Average thickness within region volume"
/>
<var name="avgVolumeDensityRegionMask" array_group="volumeAvgsRegionMask" units="kg m^{-3}"
description="Average in-situ density within region volume"
/>
<var name="avgVolumePotentialDensityRegionMask" array_group="volumeAvgsRegionMask" units="kg m^{-3}"
description="Average potential density within region volume"
/>
<var name="avgVolumeBruntVaisalaFreqTopRegionMask" array_group="volumeAvgsRegionMask" units="s^{-2}"
description="Average Brunt Vaisala frequency within region volume"
/>
<var name="avgVolumeVelocityZonalRegionMask" array_group="volumeAvgsRegionMask" units="m s^{-1}"
description="Average zonal velocity within region volume"
/>
<var name="avgVolumeVelocityMeridionalRegionMask" array_group="volumeAvgsRegionMask" units="m s^{-1}"
description="Average meridional velocity within region volume"
/>
<var name="avgVolumeVertVelocityTopRegionMask" array_group="volumeAvgsRegionMask" units="m s^{-1}"
description="Average vertical velocity within region volume"
/>
<var name="avgVolumeTemperatureRegionMask" array_group="volumeAvgsRegionMask" units="C"
description="Average surface temperature within region volume"
/>
<var name="avgVolumeSalinityRegionMask" array_group="volumeAvgsRegionMask" units="PSU"
description="Average surface salinity within region volume"
/>
<var name="avgVolumeKineticEnergyCellRegionMask" array_group="volumeAvgsRegionMask" units="m^2 s^{-2}"
description="Average kinetic energy within region volume"
/>
<var name="avgVolumeRelativeVorticityCellRegionMask" array_group="volumeAvgsRegionMask" units="s^{-1}"
description="Average relative vorticity within region volume"
/>
<var name="avgVolumeDivergenceRegionMask" array_group="volumeAvgsRegionMask" units="s^{-1}"
description="Average divergence within region volume"
/>
<var name="avgVolumeRelativeEnstrophyCellRegionMask" array_group="volumeAvgsRegionMask" units="s^{-2}"
description="Average relative enstrophy within region volume"
/>
</var_array>
</var_struct>
<streams>
<stream name="layerVolumeWeightedAverageOutput"
Expand All @@ -370,5 +623,16 @@
<var_array name="minValueWithinOceanVolumeRegion"/>
<var_array name="maxValueWithinOceanVolumeRegion"/>
<var_array name="avgValueWithinOceanVolumeRegion"/>
<var_array name="minValueWithinOceanLayerRegionMask"/>
<var_array name="maxValueWithinOceanLayerRegionMask"/>
<var_array name="avgValueWithinOceanLayerRegionMask"/>
<var_array name="minValueWithinOceanVolumeRegionMask"/>
<var_array name="maxValueWithinOceanVolumeRegionMask"/>
<var_array name="avgValueWithinOceanVolumeRegionMask"/>
<!-- needed to correctly plot the regional MHT -->
<var name="regionGroupNames"/>
<var name="regionNames"/>
<var name="nRegionsInGroup"/>
<var name="regionsInGroup"/>
</stream>
</streams>
Loading