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

Commit

Permalink
Added geographical vectors analysis members and removed old method fr…
Browse files Browse the repository at this point in the history
…om velocity solver.
  • Loading branch information
akturner committed Oct 15, 2015
1 parent 4a26097 commit 6d037e3
Show file tree
Hide file tree
Showing 7 changed files with 585 additions and 243 deletions.
15 changes: 0 additions & 15 deletions src/core_cice/Registry.xml
Original file line number Diff line number Diff line change
Expand Up @@ -706,21 +706,6 @@
<var name="basisGradientV" type="real" dimensions="maxEdges maxEdges nCells Time" name_in_code="basisGradientV"/>
</var_struct>

<!-- geographical output -->
<var_struct name="velocity_geographical" time_levs="1">
<var name="uVelocityGeo" type="real" dimensions="nVertices Time" name_in_code="uVelocityGeo"/>
<var name="vVelocityGeo" type="real" dimensions="nVertices Time" name_in_code="vVelocityGeo"/>
<var name="stressDivergenceUGeo" type="real" dimensions="nVertices Time" name_in_code="stressDivergenceUGeo"/>
<var name="stressDivergenceVGeo" type="real" dimensions="nVertices Time" name_in_code="stressDivergenceVGeo"/>
<var name="airStressVertexUGeo" type="real" dimensions="nVertices Time" name_in_code="airStressVertexUGeo"/>
<var name="airStressVertexVGeo" type="real" dimensions="nVertices Time" name_in_code="airStressVertexVGeo"/>
<var name="oceanStressUGeo" type="real" dimensions="nVertices Time" name_in_code="oceanStressUGeo"/>
<var name="oceanStressVGeo" type="real" dimensions="nVertices Time" name_in_code="oceanStressVGeo"/>
<var name="surfaceTiltForceUGeo" type="real" dimensions="nVertices Time" name_in_code="surfaceTiltForceUGeo"/>
<var name="surfaceTiltForceVGeo" type="real" dimensions="nVertices Time" name_in_code="surfaceTiltForceVGeo"/>
<var name="uOceanVelocityVertexGeo" type="real" dimensions="nVertices Time" name_in_code="uOceanVelocityVertexGeo"/>
<var name="vOceanVelocityVertexGeo" type="real" dimensions="nVertices Time" name_in_code="vOceanVelocityVertexGeo"/>
</var_struct>
<!--
<var_struct name="mesh_test" time_levs="1">
<var name="vectorCellU" type="real" dimensions="nCells Time" name_in_code="vectorCellU"/>
Expand Down
2 changes: 1 addition & 1 deletion src/core_cice/analysis_members/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

OBJS = mpas_cice_analysis_driver.o

MEMBERS = mpas_cice_high_frequency_output.o mpas_cice_temperatures.o mpas_cice_regional_statistics.o mpas_cice_ridging_diagnostics.o mpas_cice_conservation_check.o
MEMBERS = mpas_cice_high_frequency_output.o mpas_cice_temperatures.o mpas_cice_regional_statistics.o mpas_cice_ridging_diagnostics.o mpas_cice_conservation_check.o mpas_cice_geographical_vectors.o

all: $(OBJS)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,4 @@
#include "Registry_cice_regional_statistics.xml"
#include "Registry_cice_ridging_diagnostics.xml"
#include "Registry_cice_conservation_check.xml"
#include "Registry_cice_geographical_vectors.xml"
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<nml_record name="AM_geographicalVectors" mode="forward;analysis">
<nml_option name="config_AM_geographicalVectors_enable" type="logical" default_value=".true." units="unitless"
description="If true, ocean analysis member geographicalVectors is called."
possible_values=".true. or .false."
/>
<nml_option name="config_AM_geographicalVectors_compute_interval" type="character" default_value="dt" units="unitless"
description="Timestamp determining how often analysis member computation should be performed."
possible_values="Any valid time stamp, 'dt', or 'output_interval'"
/>
<nml_option name="config_AM_geographicalVectors_stream_name" type="character" default_value="output" units="unitless"
description="Name of the stream that the geographicalVectors analysis member should be tied to."
possible_values="Any existing stream name or 'none'"
/>
<nml_option name="config_AM_geographicalVectors_compute_on_startup" type="logical" default_value=".false." units="unitless"
description="Logical flag determining if an analysis member computation occurs on start-up."
possible_values=".true. or .false."
/>
<nml_option name="config_AM_geographicalVectors_write_on_startup" type="logical" default_value=".false." units="unitless"
description="Logical flag determining if an analysis member write occurs on start-up."
possible_values=".true. or .false."
/>
</nml_record>
<packages>
<package name="geographicalVectorsAMPKG" description="This package includes variables required for the geographicalVectors analysis member."/>
</packages>
<var_struct name="geographicalVectorsAM" time_levs="1" packages="geographicalVectorsAMPKG">
<var name="uVelocityGeo" type="real" dimensions="nVertices Time" units="m/s"
description="True eastwards ice velocity"
/>
<var name="vVelocityGeo" type="real" dimensions="nVertices Time" units="m/s"
description="True northwards ice velocity"
/>
<var name="stressDivergenceUGeo" type="real" dimensions="nVertices Time" units="N/m^2"
description="True eastwards stress divergence"
/>
<var name="stressDivergenceVGeo" type="real" dimensions="nVertices Time" units="N/m^2"
description="True northwards stress divergence"
/>
<var name="airStressVertexUGeo" type="real" dimensions="nVertices Time" units="N/m^2"
description="True eastwards sea ice-air stress"
/>
<var name="airStressVertexVGeo" type="real" dimensions="nVertices Time" units="N/m^2"
description="True northwards sea ice-air stress"
/>
<var name="oceanStressUGeo" type="real" dimensions="nVertices Time" units="N/m^2"
description="True eastwards sea ice-ocean stress"
/>
<var name="oceanStressVGeo" type="real" dimensions="nVertices Time" units="N/m^2"
description="True northwards sea ice-ocean stress"
/>
<var name="surfaceTiltForceUGeo" type="real" dimensions="nVertices Time" units="N/m^2"
description="True eastwards sea surface tilt stress"
/>
<var name="surfaceTiltForceVGeo" type="real" dimensions="nVertices Time" units="N/m^2"
description="True northwards sea surface tilt stress"
/>
<var name="uOceanVelocityVertexGeo" type="real" dimensions="nVertices Time" units="m/s"
description="True eastwards ocean velocity"
/>
<var name="vOceanVelocityVertexGeo" type="real" dimensions="nVertices Time" units="m/s"
description="True northwards ocean velocity"
/>
</var_struct>
12 changes: 12 additions & 0 deletions src/core_cice/analysis_members/mpas_cice_analysis_driver.F
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ module cice_analysis_driver
use cice_regional_statistics
use cice_ridging_diagnostics
use cice_conservation_check
use cice_geographical_vectors
! use cice_TEMP_LATE

implicit none
Expand Down Expand Up @@ -138,6 +139,7 @@ subroutine cice_analysis_setup_packages(configPool, packagePool, err)!{{{
call mpas_pool_add_config(analysisMemberList, 'regionalStatistics', 1)
call mpas_pool_add_config(analysisMemberList, 'ridgingDiagnostics', 1)
call mpas_pool_add_config(analysisMemberList, 'conservationCheck', 1)
call mpas_pool_add_config(analysisMemberList, 'geographicalVectors', 1)
! write(6,*) ' debug: mpas_pool_add_config'
! call mpas_pool_add_config(analysisMemberList, 'surfaceAreaWeightedAverages', 1)
! call mpas_pool_add_config(analysisMemberList, 'TEMPLATE', 1)
Expand Down Expand Up @@ -823,6 +825,8 @@ subroutine cice_init_analysis_members(domain, analysisMemberName, iErr)!{{{
call cice_init_ridging_diagnostics(domain, err_tmp)
else if ( analysisMemberName(1:nameLength) == 'conservationCheck' ) then
call cice_init_conservation_check(domain, err_tmp)
else if ( analysisMemberName(1:nameLength) == 'geographicalVectors' ) then
call cice_init_geographical_vectors(domain, err_tmp)
! else if ( analysisMemberName(1:nameLength) == 'surfaceAreaWeightedAverages' ) then
! call cice_init_surface_area_weighted_averages(domain, err_tmp)
! else if ( analysisMemberName(1:nameLength) == 'TEMPLATE' ) then
Expand Down Expand Up @@ -866,6 +870,8 @@ subroutine cice_precompute_analysis_members(domain, timeLevel, analysisMemberNam
call cice_precompute_ridging_diagnostics(domain, timeLevel, err_tmp)
else if ( analysisMemberName(1:nameLength) == 'conservationCheck' ) then
call cice_precompute_conservation_check(domain, timeLevel, err_tmp)
else if ( analysisMemberName(1:nameLength) == 'geographicalVectors' ) then
call cice_precompute_geographical_vectors(domain, timeLevel, err_tmp)
! else if ( analysisMemberName(1:nameLength) == 'surfaceAreaWeightedAverages' ) then
! call cice_precompute_surface_area_weighted_averages(domain, timeLevel, err_tmp)
! else if ( analysisMemberName(1:nameLength) == 'TEMPLATE' ) then
Expand Down Expand Up @@ -909,6 +915,8 @@ subroutine cice_compute_analysis_members(domain, timeLevel, analysisMemberName,
call cice_compute_ridging_diagnostics(domain, timeLevel, err_tmp)
else if ( analysisMemberName(1:nameLength) == 'conservationCheck' ) then
call cice_compute_conservation_check(domain, timeLevel, err_tmp)
else if ( analysisMemberName(1:nameLength) == 'geographicalVectors' ) then
call cice_compute_geographical_vectors(domain, timeLevel, err_tmp)
! else if ( analysisMemberName(1:nameLength) == 'surfaceAreaWeightedAverages' ) then
! call cice_compute_surface_area_weighted_averages(domain, timeLevel, err_tmp)
! else if ( analysisMemberName(1:nameLength) == 'TEMPLATE' ) then
Expand Down Expand Up @@ -951,6 +959,8 @@ subroutine cice_restart_analysis_members(domain, analysisMemberName, iErr)!{{{
call cice_restart_ridging_diagnostics(domain, err_tmp)
else if ( analysisMemberName(1:nameLength) == 'conservationCheck' ) then
call cice_restart_conservation_check(domain, err_tmp)
else if ( analysisMemberName(1:nameLength) == 'geographicalVectors' ) then
call cice_restart_geographical_vectors(domain, err_tmp)
! else if ( analysisMemberName(1:nameLength) == 'surfaceAreaWeightedAverages' ) then
! call cice_restart_surface_area_weighted_averages(domain, err_tmp)
! else if ( analysisMemberName(1:nameLength) == 'TEMPLATE' ) then
Expand Down Expand Up @@ -993,6 +1003,8 @@ subroutine cice_finalize_analysis_members(domain, analysisMemberName, iErr)!{{{
call cice_finalize_ridging_diagnostics(domain, err_tmp)
else if ( analysisMemberName(1:nameLength) == 'conservationCheck' ) then
call cice_finalize_conservation_check(domain, err_tmp)
else if ( analysisMemberName(1:nameLength) == 'geographicalVectors' ) then
call cice_finalize_geographical_vectors(domain, err_tmp)
! else if ( analysisMemberName(1:nameLength) == 'surfaceAreaWeightedAverages' ) then
! call cice_finalize_surface_area_weighted_averages(domain, err_tmp)
! else if ( analysisMemberName(1:nameLength) == 'TEMPLATE' ) then
Expand Down
Loading

0 comments on commit 6d037e3

Please sign in to comment.