Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Requirements and Design

ACME Land Group

Date:

...

    

Summary

The purpose of this section is to summarize what capability is to be added to the ACME Ocean and Ice system through this design process. It should be clear what new code will do that the current code does not. Summarizing the primary challenges with respect to software design and implementation is also appropriate for this section. Finally, this statement should contain general statement with regard to what is “success.”

 

Requirements

Requirement: name-of-requirement-here

Date last modified: // date  
Contributors: @ name  (add your name to this list if it does not appear)

Each requirement is to be listed under a ”section” heading, as there will be a one-to-one correspondence between requirements, design, proposed imple- mentation and testing. Requirements should not discuss technical software issues, but rather focus on model capability. To the extent possible, require- ments should be relatively independent of each other, thus allowing a clean design solution, implementation and testing plan.

 

Algorithmic Formulations

Design solution: short-description-of-proposed-solution-here

Date last modified:// date
Contributors: (add your name to this list if it does not appear)

 

For each requirement, there is a design solution that is intended to meet that requirement. Design solutions can include detailed technical discussions of PDEs, algorithms, solvers and similar, as well as technical discussion of performance issues. In general, this section should steer away from a detailed discussion of low-level software issues such as variable declarations, interfaces and sequencing.

 

Design and Implementation

Implementation: short-desciption-of-implementation-here

Date last modified: // date
Contributors: (add your name to this list if it does not appear)

 

This section should detail the plan for implementing the design solution for requirement XXX. In general, this section is software-centric with a focus on software implementation. Pseudo code is appropriate in this section. Links to actual source code are appropriate. Project management items, such as svn branches, timelines and staffing are also appropriate. How do we typeset pseudo code?A generic BGC interface is added to ALM to facilitate the coupling of ALM vegetation sub-model with alternative soil BGC modules, e.g., pflotran and BeTR. As an example to show how the interface works, we will enable running ALM soil BGC sub-model through the interface and expect to obtain bit-for-bit (BFB) outputs compared to original ACME outputs.

 

Requirements

Requirement: Provide a generic data structure

Date last modified:     
Contributors: Gangsheng Wang (Unlicensed)

Provide a generic data structure that includes potential input and output variables. 

 

Requirement: Provide generic functions/subroutines to facilitate the use of the interface

Date last modified:     
Contributors: Gangsheng Wang (Unlicensed)

Provide generic functions/subroutines to implement data passing between the vegetation and soil BGC sub-models

 

Requirement: Modify ALM code to separate soil BGC sub-model from vegetation sub-model

Date last modified:     
Contributors: Gangsheng Wang (Unlicensed)

Modify ALM subroutines to make the soil BGC sub-model standalone. Thus any alternative soil BGC sub-model (e.g., pflotran or BeTR) can be called to replace the original ALM soil BGC sub-model.


Requirement: Run ALM soil BGC sub-model through the interface

Date last modified:     
Contributors: Gangsheng Wang (Unlicensed)

Enable running the standalone ALM soil BGC sub-model by using the interface data structure and functions/subroutines.

Algorithmic Formulations

Design solution: Provide a generic data structure

Date last modified:   
Contributors: Gangsheng Wang (Unlicensed)

No new algorithmic formulations are required.

Design solution:Provide generic functions/subroutines to facilitate the use of the interface

Date last modified:   
Contributors: Gangsheng Wang (Unlicensed)

No new algorithmic formulations are required.

Design solution:Modify ALM code to separate soil BGC sub-model from vegetation sub-model

Date last modified:   
Contributors: Gangsheng Wang (Unlicensed)

No new algorithmic formulations are required.

Design solution: Run ALM soil BGC sub-model through the interface

Date last modified:   
Contributors: Gangsheng Wang (Unlicensed)

No new algorithmic formulations are required.

Design and Implementation

Implementation: Provide a generic data structure

Date last modified:  
Contributors: Gangsheng Wang (Unlicensed)

 

Add a generic data structure (clm_bgc_interface_data_type) that includes potential input and output variables for the coupling between the vegetation sub-model and soil BGC sub-model.
Generally the input variables include (1) soil BGC state variables; (2) input fluxes to soil BGC pools; (3) plant nitrogen/phosphorus demands; (4) soil properties; and (5) environmental variables such as soil temperature, soil moisture and oxygen variables. 
The output variables are specific depending on the soil BGC sub-model and generally include (1) soil BGC fluxes; (2) plant uptake of nutrients; and (3) soil BGC state variables. 


Design solution: Provide generic functions/subroutines to facilitate the use of the interface

Date last modified:  
Contributors: Gangsheng Wang (Unlicensed)

 

Add a new F90 module (clm_bgc_interfaceMod) that includes generic functions/subroutines to facilitate  

 

Planned Verification and Unit Testing 

Verification and Unit Testing: short-desciption-of-testing-here

Date last modified:  
Contributors: (add your name to this list if it does not appear)

 

How will XXX be tested? i.e. how will be we know when we have met requirement XXX. Will these unit tests be included in the ongoing going forward?

Planned Validation Testing 

Validation Testing: short-desciption-of-testing-here

Date last modified:
Contributors: (add your name to this list if it does not appear)

 

How will XXX be tested? What observational or other dataset will be used?  i.e. how will be we know when we have met requirement XXX. Will these unit tests be included in the ongoing going forward?

Planned Performance Testing 

Performance Testing: short-desciption-of-testing-here

Date last modified:
Contributors: (add your name to this list if it does not appear)

 

How will XXX be tested? i.e. how will be we know when we have met requirement XXX. Will these unit tests be included in the ongoing going forward?

 

...