Custom Query (964 matches)

Filters
 
Or
 
  
 
Columns

Show under each result:


Results (712 - 714 of 964)

Ticket Owner Reporter Resolution Summary
#852 arango Done VERY IMPORTANT: Several Improvements
Description

This update included several enhancements:

  • All the roms_*.in standard input scripts were modified to include Nsaddle parameter as the number of kernel trajectory intervals for the solution of the Saddle-Point 4D-Var (SP4DVAR). It is used to accelerate 4D-Var by parallelizing the inner loops in time. The tangent linear and adjoint models are time-stepped concurrently over short integration windows.
    ! Model iteration loops parameters.
    
           ERstr =  1
           ERend =  1
          Nouter =  1
    
          Ninner =  1
         Nsaddle =  1
      Nintervals =  1
    
  • All the roms_*.in standard input scripts were modified to allow the lateral boundary conditions and climatological variables to be separate in different files, similar to the surface forcing files. For Example, the User may have different files for physical, biology, and sediment variables. The model will scan the file list and will read the needed data in the first file containing the required variable. Therefore, the order of the filenames is critical. It is also possible to split input data time records into several NetCDF files.
    ! Input lateral boundary conditions file names. The USER has the option
    ! to separate the required lateral boundary variables into individual
    ! NetCDF files (NBCFILES > 1), as in the input surface forcing.  Also,
    ! the USER may split input data time records into several NetCDF files
    ! (monthly, seasonal, or annual). See prologue instructions above. Use
    ! a single line per entry with a continuation (\) or a vertical bar (|)
    ! symbol after each entry, except the last one.
    
        NBCFILES == 1                          ! number of boundary files
    
         BRYNAME == ../Data/doppio_bry_Mercator2007_corr.nc
    
    ! Input climatology file names. The USER has the option to separate the
    ! climatology variables into individual NetCDF files (NCLMFILES > 1),
    ! as in the input surface forcing.  Also, the USER may split input data
    ! time records into several NetCDF files (monthly, seasonal, or annual).
    ! See prologue instructions above. Use a single line per entry with a
    ! continuation (\) or a vertical bar (|) symbol after each entry, except
    ! the last one.
    
       NCLMFILES == 1                          ! number of climatology files
    
         CLMNAME == ../Data/doppio_clm_Mercator2007_corr.nc
    

That is, we can have:

    NBCFILES == 2                            ! number of boundary files

     BRYNAME == my_physics_bry_year1.nc |    ! physical kernel variables
                my_physics_bry_year2.nc \
                my_biology_bry_year1.nc |    ! biological tracers
                my_biology_bry_year2.nc


    NCLMFILES == 2                           ! number of climatology files

      CLMNAME == my_physics_clm_year1.nc |   ! physical kernel variables
                 my_physics_bry_year2.nc \
                 my_biology_bry_year1.nc |   ! biological tracers
                 my_biology_bry_year2.nc

  • The routine metrics.F was updated to include some of the statistics to exclude the land values when MASKING is activated:
    Metrics information for Grid 01:
     ===============================
    
     Minimum X-grid spacing, DXmin =  6.88663955E+00 km    Water points =  6.90302997E+00 km
     Maximum X-grid spacing, DXmax =  7.03257515E+00 km    Water points =  7.03257508E+00 km
     Minimum Y-grid spacing, DYmin =  6.86772676E+00 km    Water points =  6.88396066E+00 km
     Maximum Y-grid spacing, DYmax =  7.01314814E+00 km    Water points =  7.01314814E+00 km
     Minimum Z-grid spacing, DZmin =  1.22555380E-01 m     Water points =  1.23127234E-01 m
     Maximum Z-grid spacing, DZmax =  3.61224935E+02 m     Water points =  3.61224935E+02 m
    
     Minimum barotropic Courant Number =  1.69968839E-02
     Maximum barotropic Courant Number =  5.37936938E-01
     Maximum Coriolis   Courant Number =  3.77305364E-02
    
     Horizontal mixing scaled by grid area squared root, MAXVAL(grdscl) =  7.02285483E+00 km  (Water Points)
    
  • All the batch, csh, and perl scripts were updated to acceptable Standards to include:
    • The csh scripts need to have extension .csh (we were using .sh)
    • The batch scripts need to have extension .sh (we were using .bash)
    • The perl scripts need use strict, variables declared via my or our, avoid overriding the $a built-in, and require version 5.6 or newer.

WARNING:

  • All the ROMS standard input scripts roms_*.in were modified.
  • All the ROMS build scripts were updated and renamed to have the proper extension according to the Standard.
  • All the csh and bash scripts were renamed so they have proper extension.
#853 arango Fixed Updated def_state.F
Description

The routine def_state.F is missing the sediment module when the SEDIMENT is activated.

#ifdef SEDIMENT
      USE mod_sediment
#endif

Many thanks to Zhigang Yao for bringing this problem to my attention.

#854 arango Done VERY IMPORTANT: 4D-Var Revisited
Description

It is a significant update to ROMS 4D-Var data assimilation drivers and its associated algorithms.

  • Several CPP options are renamed for clarity and consistency of how these algorithms are described in the ROMS literature available in journals and books:

    1. IS4DVAR is renamed to I4DVAR (Incremental 4D-Var; strong constraint, primal formulation).
    2. IS4DVAR_SENSITIVITY is renamed to I4DVAR_ANA_SENSITIVITY (I4D-Var Analysis Observation Impact and Observations Sensitivity).
    3. W4DPSAS is renamed to RBL4DVAR (Restricted B-preconditioned Lanczos 4D-Var; strong/weak constraint, dual formulation). This driver have evolved throught the years and it is no longer a PSAS algorithm. See Gürol et al. (2014) for full description of the RBLanczos methodology.
    4. TL_W4DPSAS is renamed to TL_RBL4DVAR (Tangent linearization of the RBL4D-Var data assimilation system)
    5. W4DPSAS_SENSITIVITY is renamed to RBL4DVAR_ANA_SENSITIVITY (RBL4D-Var Analysis Observation Impact and Observations Sensitivity).
    6. W4DPSAS_FCT_SENSITIVITY is renamed to RBL4DVAR_FCT_SENSITIVITY (RBL4D-Var Forecast Observation Impact and Observations Sensitivity).
    7. W4DVAR is renamed to R4DVAR (indirect Representers 4D-Var; strong/weak constraint, dual formulation). This algorithm is no longer developed due to its instability in multiple outer loops in applications with high Rossby number. It is keep for instructional usage. We do not recommend to be used in realistic applications. Use instead the RBL4D-Var algorithm, which has a more efficient minimization RBLanczos solver.
    8. TL_W4DVAR is renamed to TL_R4DVAR (tangent linearization of the R4D-Var data assimilation system).
    9. W4DVAR_SENSITIVITY is renamed to R4DVAR_ANA_SENSITIVITY (R4D-Var Analysis Observation Impact and Observations Sensitivity).

You can still use the old CPP options. ROMS will issue a warning, but it runs to completion. For example, for W4DPSAS you will get:

CHECKADJ - use caution when activating: W4DPSAS
            REASON: deprecated option, use instead RBL4DVAR.
  • Similarly, several of the include drivers to Master/ocean_control.F have been renamed for consistency with the new CPP options:

    1. is4dvar_ocean.h is renamed to i4dvar_ocean.h.
    2. obs_sen_is4dvar.h is renamed to obs_sen_i4dvar_analysis.h.
    3. w4dpsas_ocean.h is renamed to rbl4dvar_ocean.h.
    4. tl_w4dpsas_ocean.h is renamed to tl_rbl4dvar_ocean.h.
    5. obs_sen_w4dpsas.h is renamed to obs_sen_rbl4dvar_analysis.h.
    6. obs_sen_w4dpsas_forecast.h is renamed to obs_sen_rbl4dvar_forecast.h.
    7. w4dvar_ocean.h is renamed to r4dvar_ocean.h.
    8. tl_w4dvar_ocean.h is renamed to tl_r4dvar_ocean.h.
    9. obs_sen_w4dvar.h is renamed to obs_sen_r4dvar_analysis.h.
    10. array_modes_w4dvar.h is renamed to array_modes.h.

  • The main 4D-Var drivers have been split into several Fortran subroutines inside of new modules: i4dvar.F, rbl4dvar.F, and r4dvar.F. Each module has generic routine names for each phase of the 4D-Var data assimilation algorithm:

    • prior_error: processes background and model prior error covariance (standard deviations) and its normalization coefficients.
    • background: nonlinear model trajectory vector (Xb) used to linearize the tangent linear and adjoint models.
    • increment: 4D-Var data assimilation increment (δXa). It iterates over all inner loops and minimizes the cost function.
    • analysis: computes analized state (Xa = Xb + δXa).
    • posterior_error: computes 4D-Var posterior error covariance.
  • The new 4D-Var data assimilation Fortran modules facilitate splitting the algorithm for various usage:

    1. Running 4D-Var with multiple executables. For example, the background phase can be computed in an atmospheric-ROMS coupled system using the ESMF/NUOPC or MCT libraries. Such a system may have a nested grid or not. Another executable with different CPP options run the increment phase. The 4D-Var system is scripted like the ECMWF IFS.
    2. Use a coarser-resolution grid in the increment phase and finer resolution in the background and analysis phases. The finer backgrond trajectory is interpolated to the coarser grid, and the coarser 4D-Var increment is interpolated to the finer grid. Such interpolation can be done insie or outside of ROMS susing other software like Matlab or Python.
    3. Development of a hybrid 4D-Var system.
    4. Development of complex algebraic equations of other 4D-Var algorithms.
    5. Comfortable interfacing with third-party data assimilation systems like Object-Oriented Prediction System (OOPS) and Joint Effort for Data Assimilation Integration (JEDI).
  • The 4D-Var algorithm becomes much simpler. For example, in rbl4dvar_ocean.h, we have
    !
    !  Compute nonlinear background state trajectory, Xb(t)|n-1. Interpolate
    !  the background at the observation locations, and compute the quality
    !  control accept/reject flag, ObsScale. The background state is used
    !  to linearize the tangent linear and adjoint models during the
    !  minimization.
    !
          CALL background (outer, RunInterval)
          IF (FoundError(exit_flag, NoError, __LINE__,                      &
         &               __FILE__)) RETURN
    !
    !  Start outer loop iterations.
    !
          OUTER_LOOP : DO my_outer=1,Nouter
    
            outer=my_outer
            inner=0
    !
    !  Compute 4D-Var data assimilation increment, dXa, by iterating over
    !  the inner loops, and minimizing the cost function.
    !
            CALL increment (my_outer, RunInterval)
            IF (FoundError(exit_flag, NoError, __LINE__,                    &
         &                 __FILE__)) RETURN
    !
    !  Compute 4D-Var data assimilation analysis, Xa = Xb + dXa.  Set
    !  nonlinear model initial conditions for next outer loop.
    !
            CALL analysis (my_outer, RunInterval)
            IF (FoundError(exit_flag, NoError, __LINE__,                    &
         &                 __FILE__)) RETURN
    
          END DO OUTER_LOOP
    
    #if defined POSTERIOR_ERROR_I || defined POSTERIOR_ERROR_F || \
        defined POSTERIOR_EOFS
    !
    !  Compute full (diagonal) posterior analysis error covariance matrix.
    !  (NOTE: Currently, this code only works for a single outer-loop).
    !
          CALL posterior_error (RunInterval)
          IF (FoundError(exit_flag, NoError, __LINE__,                      &
         &               __FILE__)) RETURN
    #endif
    

WARNING

  • The makefile was changed to add a new library (libDRIVER.a) to the ROMS/Drivers subdirectory.
  • There are small changes to lots of files. Good luck!
Batch Modify
Note: See TracBatchModify for help on using batch modify.
Note: See TracQuery for help on using queries.