﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
935	IMPORTANT: Corrected initialization of boundary indices in 2D applications	arango		"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 [https://www.myroms.org/forum/viewtopic.php?p=24661#p24661 bringing] this issue to my attention."	defect	closed	minor	Release ROMS/TOMS 4.1	Nonlinear	4.0	Fixed		
