Ocean Modeling Discussion


Search for:
It is currently Mon Jan 22, 2018 10:03 am

Post new topic Reply to topic  [ 2 posts ] 

All times are UTC

Author Message
 Post subject: Double Gyre, 4DVar Test
PostPosted: Tue May 08, 2007 9:35 pm 
Site Admin
User avatar

Joined: Wed Feb 26, 2003 4:41 pm
Posts: 1018
Location: IMCS, Rutgers University
Idealized Double Gyre, 4DVar Twin Experiments

We use the idealized double gyre application (DOUBLE_GYRE) to test all the adjoint-based algorithms. The double gyre is set-up in a 1000x2000 km2 rectangular basin with a constant depth of 500 m. The basic configuration parameters are:

   grid = 54 x 108 x 4
     dx = 18.5185 km
     dy = 18.5185 km
     dt = 3600 s (24 timesteps per day)
  depth = 500 m
  visc2 = 1280 m2/s (steady solution)

A high viscosity value is used to suppress eddy activity and achieve a steady state solution. The model is spun-up for 20 years. Then, the viscosity is lowered to 160 m2/s and run for another 10 years to compute the unsteady solution which is used to compute the background error correlation standard deviations. This is used to dimensionalize the background error covariance used in the IS4DVAR spatial convolutions. The model is further run for one day to get the true ocean state used in the one-day data assimilation twin experiments. The observations to assimilate are extracted at day 1 and at every grid point for SSH, u, v, temperture and salinity from this one-day run.

The first guess (backgound) for the assimilation experiments (basic state initial conditions) is the average of the 10-year unsteady solution.

All the NetCDF files needed to run the IS4DVAR algorithm are provided here :arrow: See tar file double_gyre.tar.gz containing the following files:

  • Data/gyre3d_bck.nc: Background state computed as the 10-year time average of the unsteady solution. It is used as first guess initial conditions for the nonlinear model. In operational prediction, the first guess is usually the previous forecast.
  • Data/gyre3d_hss.nc: Eigenpairs used to approximate the Hessian matrix during preconditioning. These eigenvalues and eigenvectors are computed from the Lanczos/conjugate gradient algorithm when IS4DVAR and LANCZOS CPP options are activated. For more information, please visit the following link. :arrow:
  • Data/gyre3d_ini_unsteady.nc: Unsteady initial conditions for the nonlinear model to compute the true state used to extract twin experiment observations. The nonlinear model is run for just one day. The observations are extracted from the day one history record.
  • Data/gyre3d_ini_zero.nc: Generic zero fields initial conditions used to initialize the tangent linear and adjoint models. The adjoint model is always initialized from rest. The tangent linear model is intialized from rest at the start of the inner loop.
  • Data/gyre3d_nrm_100k100i.nc: Background error covariance normalization coefficients. They only need to be computed once for a particular set of decorrelation scales. Please check the following link :arrow: for detailed information.
  • Data/gyre3d_std.nc: Background error covariance standard deviation computed from the 10-year unsteady solution. It is used to dimensionalize the Background error correlations during the spatial convolutions.
  • OBS/gyre3d_zSST_obs.nc: Sea surface height and sea surface temperature observations at every grid point, day 1.
  • OBS/gyre3d_zuvTS_obs.nc: Sea surface height, 3D momentum, temperature, and salinity observations at every grid point, day 1.
  • IS4DVAR/job_is4dvar.sh: IS4DVAR file configuration script. It needs to be excuted every time before running the IS4DVAR algorithm. See its contents for more information.
The following developers link :arrow: provides information about the IS4DVAR algorithm that uses the conjugate gradient without the Lanczos algorithm. The advantage of this algorithm is that reports the value of the cost function at every iteration. The Lanczos algorithm only can compute the value of the cost function at the last inner loop. Both algorithms produces similar solutions. The Lanczos algorithm is more expensive due to the additional IO. It only needs to be run once to estimate the eigenpairs used during preconditioning.

Notice that the following directory structure is recommended to set-up your application. For example,

      Projects/                                    Root Application directory
              /double_gyre/                        Double gyre application
                          /Data                    Input NetCDF files
                          /Forward                 Nonlinear model solution
                          /IS4DVAR                 Is4DVAR estimation
                          /OBS                     Data assimilation observations

Several subdirectories may be added for other adjoint-based applications.

Reply with quote  
 Post subject:
PostPosted: Mon May 14, 2007 11:52 pm 
User avatar

Joined: Tue Jul 01, 2003 4:12 am
Posts: 487
Location: NIWA
I still don't get it :?

We have a Forward subdirectory into which we install a forward model executable? In ROMS/Include/double_gyre.h there are a whole set of #if blocks. The first is headed "#if defined NLM_DRIVER". Is this the one you use to generated the forward model? Then there's one headed #if defined PICARD_TEST" and several others with more complicated conditions. Presumably I can build each of these by setting the appropriate preprocessor macros and install the executable into its own subdirectory? So I build the ones I need then run job_is4dvar.sh to build the input scripts and submit_is4dvar.sh to run the process??

Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC

Who is online

Users browsing this forum: No registered users and 1 guest

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group