[image of logo]US Joint Global Ocean Flux Study

Regional Ecosystem Modeling Testbed Project

Software and documentation

The data assimilative testbed software is available via download from this website; however, this software requires the use of the n1qn3.f routine developed by Jean-Charles.Gilbert and Claude.Lemarechal.  To obtain the n1qn3.f routine go to: 

http://www-rocq.inria.fr/~gilbert/modulopt/optimization-routines/m1qn3.html

After registering for the n1qn3.f routine via the website above, please email marjy@ccpo.odu.edu for information pertaining to the implementation of the n1qn3 code with the testbed software. 

Testbed framework Version 1.0:

Testbed framework Version 2.0:

Requirements for participation in upcoming EGU/AMEMR presentations:

         Step 1: Download the Version 2.0 code/forcing/instructions and verify that the simple eco_4 test model compiles on your machine. To do this, simply:

                    Modify Makefile commands to suit your compiler and netcdf paths
                    Modify input file to include correct paths
                    Compile using gmake or make
                    Run:  driver < input
                                test_adjoint < input
                                adjoint_driver < input
                    Run hessian_idl or equivalent Matlab routine
         
        Step 2: Follow the Implementation instructions to modify your code to fit with the Version 2.0 software. Please send me your test_adjoint results (the output written to the screen).

        Step 3: Run driver < input for your model, and send me a tarred output directory containing the AS/AS_*.out and EqPac/EqPac*.out files.  Also send me a text file with the screen output. 

Note: These 'pre-assimilation' results should be obtained assuming you have not seen the data that will be assimilated. Please send me a brief explanation/reference for how these initial parameter guesses were selected. 

         Step 4: Download and follow the Identical Twin Experiment instructions above. Verify that your original parameter values were recovered, and send me your resulting accepted_iter.out file.

Note: Running hessian_driver < input_hess can give you important information regarding the sensitivity and correlations of various parameters.  Parameters associated with very large uncertainties for these twin experiments are unlikely to be able to be successfully optimized when real data are assimilated.

         Step 5: Run adjoint_driver < input for both sites simultaneously (nsite = 2 in the input file), beginning with the parameter values used to create your 'pre-assimilation' results in Step 3. You may choose to optimize any subset of these parameters. (My experience has shown that optimizing 4-7 parameters for models containing 4-9 state variables produces the best results.)  For our initial comparison, please use the initial and boundary conditions given in the forcing directory, hadv_wt=1., and sinking velocities of 20 m/day (and 6 m/day if you have an additional small detritus size class). Send me a tarred output directory containing accepted_iters.out, params.out, costs.out, hessian.out, invhessian.out, and the AS/AS*.out and EqPac/EqPac*.out file.  Note that a invhessian.out file will only be created after adjoint_driver has completed successfully.

Note: If your code results in NaNs, it is likely that you are trying to estimate too many partially correlated parameters. Try copying the parameter values in your params.out file (but not the last set or two that gave the NaNs) into a file called eco_params.in.new (see eco_params.in.initial for correct format), and running hessian_driver < input_hess.  Use hessian_idl or an equivalent MATLAB routine to compute a rough estimate of the uncertainty associated with each estimated parameter.  Parameters with high uncertainties cannot be constrained with the available data, and should not be optimized. If all your parameters are associated with uncertainties less than 1.0, and NaNs are still obtained, you may try rerunning adjoint_driver, each time beginning with the second or third to last set of parameters obtained from the previous adjoint_driver run.

         Step 6 (optional): Follow Step 5, but adjust the initial conditions, boundary conditions, hadv_wt, and sinking velocities as desired.  Send me an explanation of the changes made, and the tarred output directory.

         Step 7 (optional): Follow Step 5, but feel free to begin with any initial parameter values, not necessarily those used to obtain your pre-assimilation results in Step 3.

         Step 8 (optional if results from Step 6 and 7 were both provided): Follow Step 5, but adjust the initial conditions, boundary conditions, hadv_wt, sinking velocities and initial parameter values as desired.  Send me an explanation of the changes made, and the tarred output directory.

Cross-validation experiments and experiments will require downloading the forcing_CrossVal directory




Go to the top of this page.

[image of logo]  


Written by J. Klinck, April, 2003. Last updated by M. Friedrichs, March, 2005.

Send questions or comments by e-mail to marjy@ccpo.odu.edu