#935 closed defect (Fixed)
IMPORTANT: Corrected initialization of boundary indices in 2D applications
| Reported by: | arango | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | Release ROMS/TOMS 4.1 |
| Component: | Nonlinear | Version: | 4.0 |
| Keywords: | Cc: |
Description
Removed the initialization of 3D boundary indices in mod_ncparam.F for shallow-water applications where SOLVE3D is undefined. Now we have:
!
! Set generic lateral boundary indices for LBC structure. Use the same
! values of the state variables at the same C-grid location. Generic
! indices are used for testing periodicity. The PSI-variables and
! W-variables are assigned the same value as the RHO-variables.
!
isBp2d=isFsur ! 2D PSI-variables
isBr2d=isFsur ! 2D RHO-variables
isBu2d=isUbar ! 2D U-variables
isBv2d=isVbar ! 2D V-variables
#if defined SOLVE3D
isBp3d=isTvar(1) ! 3D PSI-variables
isBr3d=isTvar(1) ! 3D RHO-variables
isBu3d=isUvel ! 3D U-variables
isBv3d=isVvel ! 3D V-variables
isBw3d=isTvar(1) ! 3D W-variables
# if defined GLS_MIXING || defined MY25_MIXING
isMtke=isTvar(MT)+1 ! turbulent variables
# endif
#endif
In 2D applications, the total number of tracers, MT=0. Therefore, the isTvar vector is allocated as
IF (.not.allocated(isTvar)) THEN
allocate ( isTvar(MT) )
Dmem(1)=Dmem(1)+REAL(MT,r8)
END IF
Thus, we have only access to element zero of the vector isTvar, which may trigger a segmentation violation when accessing isTvar(1).
Many thanks to Moein DoostMohammadi for bringing this issue to my attention.
Change History (2)
comment:1 by , 3 years ago
| Resolution: | → Fixed |
|---|---|
| Status: | new → closed |
comment:2 by , 3 years ago
- Fixed remaining issues when using idTvar, idTsur, and isTvar in shallow-water applications when SOLVE3D is undefined.
- The allocation of the maximum number of tracers (MT) is constrained to be larger than zero.
- Corrected a bug in the deallocation of mod_fourdvar.F when the internal switch OBSERVATIONS is undefined. The error was triggered when activating the NORMALIZATION switch to compute the 4D-Var error covariance normalization coefficients.
Note:
See TracTickets
for help on using tickets.
