Opened 15 years ago

Closed 15 years ago

#282 closed upgrade (Done)

4DVAR adjustment of open boundaries

Reported by: arango Owned by: arango
Priority: major Milestone: Adjoint Based Algorithms
Component: Adjoint Version: 3.2
Keywords: Cc:

Description

Finally, I finished coding the 4DVAR adjustment for the open boundaries (ADJUST_BOUNDARY). This is the final piece missing in the 4DVAR data assimilation (strong and weak constraint) algorithms. We will be able to adjust initial condition, boundary conditions, surface forcing, and interior model error. I have been working on this new option for several weeks. This was technically tricky because of the nature of the boundary arrays which are only processed by tiles adjacent to the open boundaries. However, all the tiles participate in the horizontal convolutions. I rewrote the convolutions 5 times until I found an efficient design.

There are several new files associated with this option:

Nonlinear/bc_bry2d.F
Nonlinear/bc_bry3d.F
Nonlinear/conv_bry2d.F
Nonlinear/conv_bry3d.F

Adjoint/ad_bc_bry2d.F
Adjoint/ad_bc_bry3d.F
Adjoint/ad_conv_bry2d.F
Adjoint/ad_conv_bry3d.F

Tangent/tl_conv_bry2d.F
Tangent/tl_conv_bry3d.F

Utility/nf_fread2d_bry.F
Utility/nf_fread3d_bry.F
Utility/nf_fwrite2d_bry.F
Utility/nf_fwrite3d_bry.F

Data/ROMS/CDL/s4dvar_std_b.cdl
Data/ROMS/CDL/s4dvar_std_f.cdl
Data/ROMS/CDL/s4dvar_std_i.cdl
Data/ROMS/CDL/s4dvar_std_m.cdl

Obviously, we will fine tunning this algorithms in the coming weeks. We will let you know when we are done. Notice that the changes to several routines do not affect previous capabilities due to the modularity of ROMS algorithms.

This new algorithm is similar to the surface forcing adjustment. We can specify in input script ocean.in how often the open boundaries are adjusted. See parameter NOBC:

!  NOBC        Number of time-steps between 4DVAR adjustment of open boundary
!              fields. In strong constraint 4DVAR, it is possible to adjust
!              open boundaries at other time intervals in addition to initial
!              time.  This parameter is used to store the appropriate number
!              of open boundary records in the output history NetCDF files:
!              1+NTIMES/NOBC records. NOBC must be a factor of NTIMES or
!              greater than NTIMES. If NOBC > NTIMES, only one record is
!              stored in the NetCDF files and the adjustment is for constant
!              forcing with constant correction. This parameter is only
!              relevant in 4DVAR when activating ADJUST_BOUNDARY.

Many thanks to Andy Moore for his help in the design of this new option and for coding the variational differentiation of the adjoint-based state variables associated with the open boundaries.

Change History (1)

comment:1 by arango, 15 years ago

Resolution: Done
Status: newclosed
Note: See TracTickets for help on using tickets.