Skip to content

Instantly share code, notes, and snippets.

@pwolfram
Created February 10, 2015 19:49
Show Gist options
  • Save pwolfram/6c69d192a2cda449ce29 to your computer and use it in GitHub Desktop.
Save pwolfram/6c69d192a2cda449ce29 to your computer and use it in GitHub Desktop.
<nml_record name="lagrangian_particle_tracking" in_defaults="true">
<nml_option
name="config_use_lagrangian_particle_tracking" type="logical"
default_value=".false." units="unitless"
description="If true, ocean analysis member lagrangian_particle_tracking is called."
possible_values=".true. or .false."
/>
<nml_option name="config_lagrangian_particle_tracking_compute_interval" type="character" default_value="same_as_dt" units="unitless"
description="Timestamp determining how often analysis member computation should be performed."
possible_values="'DDDD_HH:MM:SS', 'same_as_output', 'same_as_dt'"
/>
<nml_option name="config_lagrangian_particle_tracking_compute_startup" type="logical" default_value=".true." units="unitless"
description="Logical flag determining if an analysis member computation occurs on start-up."
possible_values=".true. or .false."
/>
<nml_option name="config_lagrangian_particle_tracking_filter_number" type="integer" default_value="0" unitless="unitless"
description="Number of times to apply filtering operation."
possible_values="0, 1, 2, ..."
/>
</nml_record>
<dims>
<dim name="nParticles" units="unitless"
description="The total number of particles in the simlulation."
/>
<dim name="nBuoyancySurfaces" units="unitless"
description="The total number of buoyancy surfaces on which to interpolate velocity."
/>
</dims>
<packages>
<package name="amLagrangianParticles"
description="This package includes variables required for the Lagrangian particle tracking analysis member."
/>
</packages>
<streams>
<stream name="lagrangianParticleTrackingOutput" type="output"
filename_template="analysis_members/lagrangianParticleTrackingOutput.$Y-$M-$D_$h.$m.$s.nc"
output_interval="0000_01:00:00"
filename_interval="01-00-00_00:00:00"
clobber_mode="truncate"
packages="amLagrangianParticles"
runtime_format="single_file">
<var name="xtime"/>
<var name="indexToParticleID"/>
<var name="currentBlock"/>
<var name="currentCell"/>
<var name="xParticle"/>
<var name="yParticle"/>
<var name="zParticle"/>
<var name="zLevelParticle"/>
<var name="buoyancyParticle"/>
<var name="vertexReconstMethod"/>
<var name="horizontalTreatment"/>
<var name="verticalTreatment"/>
<var name="dtParticle"/>
<var name="timeIntegration"/>
<var name="indexLevel"/>
<var name="uVertexVelocity"/>
<var name="vVertexVelocity"/>
<var name="wVertexVelocity"/>
<var name="filteredVelocityU"/>
<var name="filteredVelocityV"/>
<var name="filteredVelocityW"/>
<var name="cellOwnerBlock"/>
<var name="transfered"/>
<var name="lonVel"/>
<var name="latVel"/>
<var name="sumU"/>
<var name="sumV"/>
<var name="sumUU"/>
<var name="sumUV"/>
<var name="sumVV"/>
<var name="buoyancySurfaceValues"/>
<var name="buoyancySurfaceVelocityMeridional"/>
<var name="buoyancySurfaceVelocityZonal"/>
<var name="buoyancySurfaceDepth"/>
</stream>
<stream name="lagrangianParticleTrackingRestart" type="restart"
filename_template="analysis_members/lagrangianParticleTrackingRestart.$Y-$M-$D_$h.$m.$s.nc"
output_interval="0000_01:00:00"
input_interval="initial_only"
filename_interval="01-00-00_00:00:00"
clobber_mode="truncate"
packages="amLagrangianParticles"
runtime_format="single_file">
<var name="xtime"/>
<var name="indexToParticleID"/>
<var name="currentBlock"/>
<var name="currentCell"/>
<var name="xParticle"/>
<var name="yParticle"/>
<var name="zParticle"/>
<var name="zLevelParticle"/>
<var name="buoyancyParticle"/>
<var name="vertexReconstMethod"/>
<var name="horizontalTreatment"/>
<var name="verticalTreatment"/>
<var name="dtParticle"/>
<var name="timeIntegration"/>
<var name="indexLevel"/>
<var name="transfered"/>
<var name="sumU"/>
<var name="sumV"/>
<var name="sumUU"/>
<var name="sumUV"/>
<var name="sumVV"/>
<var name="buoyancySurfaceValues"/>
</stream>
<stream name="lagrangianParticleTrackingInput" type="input"
filename_template="analysis_members/lagrangianParticleTrackingInput.nc"
input_interval="initial_only"
packages="amLagrangianParticles"
immutable="true">
<var name="indexToParticleID"/>
<var name="currentBlock"/>
<var name="currentCell"/>
<var name="xParticle"/>
<var name="yParticle"/>
<var name="zParticle"/>
<var name="zLevelParticle"/>
<var name="buoyancyParticle"/>
<var name="vertexReconstMethod"/>
<var name="horizontalTreatment"/>
<var name="verticalTreatment"/>
<var name="dtParticle"/>
<var name="timeIntegration"/>
<var name="indexLevel"/>
<var name="transfered"/>
<var name="buoyancySurfaceValues"/>
</stream>
</streams>
<var_struct name="amLagrangianParticlesFields" time_levs="2" packages="amLagrangianParticles">
<var name="uVertexVelocity"
type="real" dimensions="nVertLevels nVertices" units="m s^{-1}"
description="recostructed u horizontal velocity at vertices"
/>
<var name="vVertexVelocity"
type="real" dimensions="nVertLevels nVertices" units="m s^{-1}"
description="recostructed v horizontal velocity at vertices"
/>
<var name="wVertexVelocity"
type="real" dimensions="nVertLevels nVertices" units="m s^{-1}"
description="recostructed w horizontal velocity at vertices"
/>
<var name="buoyancy"
type="real" dimensions="nVertLevels nCells" units="kg m^{-3}"
description="buoyancy values at cell mid points, currently proxy for density"
/>
</var_struct>
<var_struct name="amLagrangianParticlesCells" time_levs="1" packages="amLagrangianParticles">
<var name="cellOwnerBlock" type="integer" dimensions="nCells" units="unitless"
description="designates ownership of cell in terms of computational block"
/>
<var name="filteredVelocityW"
type="real" dimensions="nVertLevels nCells Time" units="m s^{-1}"
description="filtered u horizontal velocity at cells"
/>
<var name="filteredVelocityV"
type="real" dimensions="nVertLevels nCells Time" units="m s^{-1}"
description="filtered v horizontal velocity at cells"
/>
<var name="filteredVelocityU"
type="real" dimensions="nVertLevels nCells Time" units="m s^{-1}"
description="filtered w horizontal velocity at cells"
/>
<var name="buoyancySurfaceVelocityZonal"
type="real" dimensions="nBuoyancySurfaces nCells Time" units="m s^{-1}"
description="horizontal zonal velocity on buoyancy surface"
/>
<var name="buoyancySurfaceVelocityMeridional"
type="real" dimensions="nBuoyancySurfaces nCells Time" units="m s^{-1}"
description="horizontal meridional velocity on buoyancy surface"
/>
<var name="buoyancySurfaceDepth"
type="real" dimensions="nBuoyancySurfaces nCells Time" units="m s^{-1}"
description="depth of buoyancy surface"
/>
<var name="buoyancySurfaceValues"
type="real" dimensions="nBuoyancySurfaces" units="kg m^{-3}"
description="definition of buoyancy surfaces in terms of potential density"
/>
<var name="wachspressAreaB"
type="real" dimensions="nCells maxEdges" units="m^2"
description="cached polygon subarea B_i used in Wachspess calculation"
/>
</var_struct>
<var_struct name="amLagrangianParticlesHalo" time_levs="1" packages="amLagrangianParticles">
<var name="ioBlock" type="integer" dimensions="nParticles" units="unitless"
description="input / output Proc for particle"
/>
<var name="currentBlock" type="integer" dimensions="nParticles" units="unitless"
description="current block a particle is on"
/>
<var name="currentCell" type="integer" dimensions="nParticles" units="unitless"
description="current cell a particle is on"
/>
<var name="indexToParticleID" type="integer" dimensions="nParticles" units="unitless"
description="designates global ID for a particle"
/>
<var name="xParticle" type="real" dimensions="nParticles Time" units="m"
description="x location of horizontal particle position"
/>
<var name="yParticle" type="real" dimensions="nParticles Time" units="m"
description="y location of horizontal particle position"
/>
<var name="zParticle" type="real" dimensions="nParticles Time" units="m"
description="z location of horizontal particle position"
/>
<var name="zLevelParticle" type="real" dimensions="nParticles Time" units="m"
description="z-level for vertical elevation of particle position"
/>
<var name="vertexReconstMethod" type="integer" dimensions="nParticles Time", units="unitless"
description="type of vertex reconstruction method, with possible_values='RBFlinear(1)','tangentialRT0(2)' as ENUMs"
/>
<var name="timeIntegration" type="integer" dimensions="nParticles Time", units="unitless"
description="type of temporal interpolation with possible_values='EE(1), RK2(2), RK4(4)' as ENUMs"
/>
<var name="horizontalTreatment" type="integer" dimensions="nParticles Time", units="unitless"
description="select type of horizontal treatment to be used, with possible_values='wachspress' (ENUM)"
/>
<var name="verticalTreatment" type="integer" dimensions="nParticles Time", units="unitless"
description="select type of vertical treatment to be used, with possible_values='indexLevel','fixedZLevel','passiveFloat','buoyancySurface','argoFloat' (ENUM)"
/>
<var name="indexLevel" type="integer" dimensions="nParticles Time" units="unitless"
description="0 if particle is fixed, or index level if particle is free-floating"
/>
<var name="dtParticle" type="real" dimensions="nParticles Time" units="s"
possible_values="Any positive real value, but limited by CFL condition."
/>
<var name="buoyancyParticle" type="real" dimensions="nParticles Time" units="kg m^{-3}"
description="buoyancy values for particle, currently proxy for density"
/>
<var name="transfered" type ="integer" dimensions="nParticles Time" units="unitless"
description="flag to monitor if the particle was transfered"
/>
<var name="sumU" type="real" dimensions="nParticles Time" units="m s^{-1}"
description="summed velocity: \sum_i U_i"
/>
<var name="sumV" type="real" dimensions="nParticles Time" units="m s^{-1}"
description="summed velocity: \sum_i V_i"
/>
<var name="sumUU" type="real" dimensions="nParticles Time" units="m^2 s^{-2}"
description="summed energy: \sum_i U*U"
/>
<var name="sumUV" type="real" dimensions="nParticles Time" units="m^2 s^{-2}"
description="summed energy: \sum_i U*V"
/>
<var name="sumVV" type="real" dimensions="nParticles Time" units="m^2 s^{-2}"
description="summed energy: \sum_i V*V"
/>
</var_struct>
<var_struct name="amLagrangianParticlesNonHalo" time_levs="1" packages="amLagrangianParticles">
<var name="lonVel" type="real" dimensions="nParticles Time" units="m s^{-1}"
description="u velocity of particle - zonal direction"
/>
<var name="latVel" type="real" dimensions="nParticles Time" units="m s^{-1}"
description="v velocity of particle - meridional direction"
/>
</var_struct>
<var_struct name="amLagrangianParticlesScratch" time_levs="1" packages="amLagrangianParticles">
<var name="ucReconstructX" type="real" dimensions="nVertLevels nCells" units="m s^{-1}"
description="reconstructed cell center velocity- x component"
/>
<var name="ucReconstructY" type="real" dimensions="nVertLevels nCells" units="m s^{-1}"
description="reconstructed cell center velocity- y component"
/>
<var name="ucReconstructZ" type="real" dimensions="nVertLevels nCells" units="m s^{-1}"
description="reconstructed cell center velocity- z component"
/>
<var name="ucTemp" type="real" dimensions="nVertLevels nCells" units="m s^{-1}"
description="cell velocity"
/>
<var name="ucX" type="real" dimensions="nVertLevels nCells" units="m s^{-1}"
description="cell velocity- x component"
/>
<var name="ucY" type="real" dimensions="nVertLevels nCells" units="m s^{-1}"
description="cell velocity- y component"
/>
<var name="ucZ" type="real" dimensions="nVertLevels nCells" units="m s^{-1}"
description="cell velocity- z component"
/>
<var name="uvX" type="real" dimensions="nVertLevels nVertices" units="m s^{-1}"
description="vertex velocity- x component"
/>
<var name="uvY" type="real" dimensions="nVertLevels nVertices" units="m s^{-1}"
description="vertex velocity- y component"
/>
<var name="uvZ" type="real" dimensions="nVertLevels nVertices" units="m s^{-1}"
description="vertex velocity- z component"
/>
<var name="ucReconstructMeridional" type="real" dimensions="nVertLevels nCells" units="m s^{-1}"
description="reconstructed cell center velocity- meridional component"
/>
<var name="ucReconstructZonal" type="real" dimensions="nVertLevels nCells" units="m s^{-1}"
description="reconstructed cell center velocity- zonal component"
/>
<var name="boundaryVertexGlobal" type="integer" dimensions="nVertLevels nVertices" units="unitless"
description="Mask for determining boundary vertices, but global. A boundary vertex has at least one inactive cell neighboring it."
/>
<var name="boundaryCellGlobal" type="integer" dimensions="nVertLevels nCells" units="unitless"
description="Mask for determining boundary cells, but global. A boundary cell has at least one inactive cell neighboring it."
/>
</var_struct>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment