Index: branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/par_oce.F90
===================================================================
--- branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/par_oce.F90	(revision 2025)
+++ branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/par_oce.F90	(revision 2104)
@@ -4,14 +4,8 @@
    !! Ocean :   set the ocean parameters
    !!======================================================================
-   !! History :
-   !!   4.0  !  91     (Imbard, Levy, Madec)  Original code
-   !!   9.0  !  04-01  (G. Madec, J.-M. Molines)  Free form and module
-   !!    "   !  05-11  (V. Garnier) Surface pressure gradient organization
-   !!----------------------------------------------------------------------
-   !!  OPA 9.0 , LOCEAN-IPSL (2005) 
-   !! $Id$ 
-   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
-   !!----------------------------------------------------------------------
-   !! * Modules used
+   !! History :  OPA  !  1991     (Imbard, Levy, Madec)  Original code
+   !!   NEMO     1.0  !  2004-01  (G. Madec, J.-M. Molines)  Free form and module
+   !!            3.3  !  2010-09  (C. Ethe) TRA-TRC merge: add jpts, jp_tem & jp_sal
+   !!----------------------------------------------------------------------
    USE par_kind          ! kind parameters
 
@@ -22,26 +16,18 @@
    !!   Domain decomposition
    !!----------------------------------------------------------------------
-   !! * if we dont use massively parallel computer (parameters jpni=jpnj=1)
-   !!      so jpiglo=jpi and jpjglo=jpj
-
+   !! if we dont use massively parallel computer (parameters jpni=jpnj=1) so jpiglo=jpi and jpjglo=jpj
 #if ! defined key_mpp_dyndist 
-   INTEGER, PUBLIC, PARAMETER ::    &  !: 
-      jpni   = 1,                   &  !: number of processors following i 
-      jpnj   = 1,                   &  !: number of processors following j
-      jpnij  = 1                       !: nb of local domain = nb of processors 
-      !                                !  ( <= jpni x jpnj )
-#else
-   INTEGER, PUBLIC ::               &  !
-      jpni      ,                   &  !: number of processors following i 
-      jpnj      ,                   &  !: number of processors following j
-      jpnij                            !: nb of local domain = nb of processors 
-      !                                !  ( <= jpni x jpnj )
-#endif
-
-   INTEGER, PUBLIC, PARAMETER ::    &  !:
-      jpr2di = 0,                   &  !: number of columns for extra outer halo 
-      jpr2dj = 0,                   &  !: number of rows    for extra outer halo 
-      jpreci = 1,                   &  !: number of columns for overlap 
-      jprecj = 1                       !: number of rows    for overlap 
+   INTEGER, PUBLIC, PARAMETER ::   jpni   = 1   !: number of processors following i 
+   INTEGER, PUBLIC, PARAMETER ::   jpnj   = 1   !: number of processors following j
+   INTEGER, PUBLIC, PARAMETER ::   jpnij  = 1   !: nb of local domain = nb of processors ( <= jpni x jpnj )
+#else
+   INTEGER, PUBLIC            ::   jpni         !: number of processors following i 
+   INTEGER, PUBLIC            ::   jpnj         !: number of processors following j
+   INTEGER, PUBLIC            ::   jpnij        !: nb of local domain = nb of processors ( <= jpni x jpnj )
+#endif
+   INTEGER, PUBLIC, PARAMETER ::   jpr2di = 0   !: number of columns for extra outer halo 
+   INTEGER, PUBLIC, PARAMETER ::   jpr2dj = 0   !: number of rows    for extra outer halo 
+   INTEGER, PUBLIC, PARAMETER ::   jpreci = 1   !: number of columns for overlap 
+   INTEGER, PUBLIC, PARAMETER ::   jprecj = 1   !: number of rows    for overlap 
 
    !! Ocean Domain sizes
@@ -100,109 +86,97 @@
    !!   default option  :                               small closed basin
    !!---------------------------------------------------------------------
-   CHARACTER(len=16), PUBLIC, PARAMETER ::   &  !:
-      cp_cfg = "default"               !: name of the configuration
-   INTEGER, PARAMETER ::            &  !:
-      jp_cfg = 0  ,                 &  !: resolution of the configuration
-
-      ! data size                     !!! * size of all input files *
-      jpidta  = 10,                 &  !: 1st lateral dimension ( >= jpi )
-      jpjdta  = 12,                 &  !: 2nd    "         "    ( >= jpj )
-      jpkdta  = 31,                 &  !: number of levels      ( >= jpk )
-
-      ! global or zoom domain size    !!! * computational domain *
-      jpiglo  = jpidta,             &  !: 1st dimension of global domain --> i
-      jpjglo  = jpjdta,             &  !: 2nd    "                  "    --> j
-      jpk     = jpkdta,             &  !: number of vertical levels
-      ! zoom starting position 
-      jpizoom =   1   ,             &  !: left bottom (i,j) indices of the zoom
-      jpjzoom =   1   ,             &  !: in data domain indices
-
-      ! Domain characteristics
-      jperio  =  0                     !: lateral cond. type (between 0 and 6)
-         !                             !  = 0 closed
-         !                             !  = 1 cyclic East-West
-         !                             !  = 2 equatorial symmetric
-         !                             !  = 3 North fold T-point pivot
-         !                             !  = 4 cyclic East-West AND North fold T-point pivot
-         !                             !  = 5 North fold F-point pivot
-         !                             !  = 6 cyclic East-West AND North fold F-point pivot
-
-      !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
-      !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
-      REAL(wp), PARAMETER ::   &  !:
-         pp_not_used       = 999999._wp , &  !:
-         pp_to_be_computed = 999999._wp      !:
+   CHARACTER(len=16), PUBLIC, PARAMETER ::   cp_cfg = "default"   !: name of the configuration
+   INTEGER          , PUBLIC, PARAMETER ::   jp_cfg = 0           !: resolution of the configuration
+
+   ! data size                                       !!! * size of all input files *
+   INTEGER, PUBLIC, PARAMETER ::   jpidta  = 10       !: 1st lateral dimension ( >= jpi )
+   INTEGER, PUBLIC, PARAMETER ::   jpjdta  = 12       !: 2nd    "         "    ( >= jpj )
+   INTEGER, PUBLIC, PARAMETER ::   jpkdta  = 31       !: number of levels      ( >= jpk )
+
+   ! global or zoom domain size                      !!! * computational domain *
+   INTEGER, PUBLIC, PARAMETER ::   jpiglo  = jpidta   !: 1st dimension of global domain --> i
+   INTEGER, PUBLIC, PARAMETER ::   jpjglo  = jpjdta   !: 2nd    -                  -    --> j
+   INTEGER, PUBLIC, PARAMETER ::   jpk     = jpkdta   !: number of vertical levels
+   ! zoom starting position 
+   INTEGER, PUBLIC, PARAMETER ::   jpizoom =   1      !: left bottom (i,j) indices of the zoom
+   INTEGER, PUBLIC, PARAMETER ::   jpjzoom =   1      !: in data domain indices
+
+   ! Domain characteristics
+   INTEGER, PUBLIC, PARAMETER ::   jperio  =  0       !: lateral cond. type (between 0 and 6)
+   !                                                  !  = 0 closed                 ;   = 1 cyclic East-West
+   !                                                  !  = 2 equatorial symmetric   ;   = 3 North fold T-point pivot
+   !                                                  !  = 4 cyclic East-West AND North fold T-point pivot
+   !                                                  !  = 5 North fold F-point pivot
+   !                                                  !  = 6 cyclic East-West AND North fold F-point pivot
+
+   !!  Values set to pp_not_used indicates that this parameter is not used in THIS config.
+   !!  Values set to pp_to_be_computed  indicates that variables will be computed in domzgr
+   REAL(wp), PUBLIC, PARAMETER ::   pp_not_used       = 999999._wp   !: vertical grid parameter
+   REAL(wp), PUBLIC, PARAMETER ::   pp_to_be_computed = 999999._wp   !:    -      -       -
 
 
    !! Horizontal grid parameters for domhgr
    !! =====================================
-
-   INTEGER, PUBLIC, PARAMETER   ::   &  !:
-      jphgr_msh = 0            !: type of horizontal mesh
-      !                        !  = 0 curvilinear coordinate on the sphere
-      !                        !      read in coordinate.nc file
-      !                        !  = 1 geographical mesh on the sphere
-      !                        !      with regular grid-spacing
-      !                        !  = 2 f-plane with regular grid-spacing
-      !                        !  = 3 beta-plane with regular grid-spacing
-      !                        !  = 4 Mercator grid with T/U point at the equator  with
-      !                        !      isotropic resolution (e1_deg)
-
-   REAL(wp) , PUBLIC, PARAMETER ::   &   !:
-      ppglam0  =    0.0_wp,   &  !: longitude of first raw and column T-point (jphgr_msh = 1)
-      ppgphi0  =  -35.0_wp,   &  !: latitude  of first raw and column T-point (jphgr_msh = 1)
-      !                          !  latitude for the Coriolis or Beta parameter (jphgr_msh = 2 or 3)
-      ppe1_deg =    1.0_wp,   &  !: zonal      grid-spacing (degrees)
-      ppe2_deg =    0.5_wp,   &  !: meridional grid-spacing (degrees)
-      ppe1_m   = 5000.0_wp,   &  !: zonal      grid-spacing (degrees)
-      ppe2_m   = 5000.0_wp       !: meridional grid-spacing (degrees)
+   INTEGER, PUBLIC, PARAMETER  ::   jphgr_msh = 0   !: type of horizontal mesh
+   !                                                !  = 0 curvilinear coordinate on the sphere read in coordinate.nc
+   !                                                !  = 1 geographical mesh on the sphere with regular grid-spacing
+   !                                                !  = 2 f-plane with regular grid-spacing
+   !                                                !  = 3 beta-plane with regular grid-spacing
+   !                                                !  = 4 Mercator grid with T/U point at the equator
+
+   REAL(wp) , PUBLIC, PARAMETER ::   ppglam0  =    0.0_wp   !: longitude of first raw and column T-point (jphgr_msh = 1)
+   REAL(wp) , PUBLIC, PARAMETER ::   ppgphi0  =  -35.0_wp   !: latitude  of first raw and column T-point (jphgr_msh = 1)
+   !                                                        !  used for Coriolis & Beta parameters (jphgr_msh = 2 or 3)
+   REAL(wp) , PUBLIC, PARAMETER ::   ppe1_deg =    1.0_wp   !: zonal      grid-spacing (degrees)
+   REAL(wp) , PUBLIC, PARAMETER ::   ppe2_deg =    0.5_wp   !: meridional grid-spacing (degrees)
+   REAL(wp) , PUBLIC, PARAMETER ::   ppe1_m   = 5000.0_wp   !: zonal      grid-spacing (degrees)
+   REAL(wp) , PUBLIC, PARAMETER ::   ppe2_m   = 5000.0_wp   !: meridional grid-spacing (degrees)
 
    !! Vertical grid parameter for domzgr
    !! ==================================
-
-   REAL(wp), PUBLIC, PARAMETER  ::   &  !:
-      &     ppsur = -4762.96143546300_wp ,  &  !: ORCA r4, r2 and r05 coefficients
-      &     ppa0  =   255.58049070440_wp ,  &  !: (default coefficients)
-      &     ppa1  =   245.58132232490_wp ,  &  !:
-      &     ppkth =    21.43336197938_wp ,  &  !:
-      &     ppacr =     3.00000000000_wp       !:
-
-   !!  If both ppa0 ppa1 and ppsur are specified to 0, then
-   !!  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
-
-   REAL(wp), PUBLIC, PARAMETER ::   &  !:
-      &     ppdzmin = 10._wp             ,  &  !: Minimum vertical spacing
-      &     pphmax  = 5000._wp                 !: Maximum depth
-
-   !!---------------------------------------------------------------------
-#endif
-
-   INTEGER, PUBLIC, PARAMETER :: jpts   = 2    !: Number of active tracers ( T & S )
-   INTEGER, PUBLIC, PARAMETER :: jp_tem = 1    !: indice for temperature
-   INTEGER, PUBLIC, PARAMETER :: jp_sal = 2    !: indice for salinity
-
-   !!---------------------------------------------------------------------
-   !! Domain Matrix size
-   !!---------------------------------------------------------------------
-   INTEGER  &  !:
-#if !defined key_agrif
-      ,PARAMETER  &
-#endif
-    :: &
-      jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci ,   &  !: first  dimension
-      jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj ,   &  !: second dimension
-      jpim1 = jpi-1,                                             &  !: inner domain indices
-      jpjm1 = jpj-1,                                             &  !:   "            "
-      jpkm1 = jpk-1,                                             &  !:   "            "
-      jpij  = jpi*jpj                                               !:  jpi x jpj
-
+   REAL(wp), PUBLIC, PARAMETER ::   ppsur = -4762.96143546300_wp   !: ORCA r4, r2 and r05 coefficients
+   REAL(wp), PUBLIC, PARAMETER ::   ppa0  =   255.58049070440_wp   !: (default coefficients)
+   REAL(wp), PUBLIC, PARAMETER ::   ppa1  =   245.58132232490_wp   !:
+   REAL(wp), PUBLIC, PARAMETER ::   ppkth =    21.43336197938_wp   !:
+   REAL(wp), PUBLIC, PARAMETER ::   ppacr =     3.00000000000_wp   !:
+   !
+   !  If both ppa0 ppa1 and ppsur are specified to 0, then
+   !  they are computed from ppdzmin, pphmax , ppkth, ppacr in dom_zgr
+   REAL(wp), PUBLIC, PARAMETER ::   ppdzmin = 10._wp     !: Minimum vertical spacing
+   REAL(wp), PUBLIC, PARAMETER ::   pphmax  = 5000._wp   !: Maximum depth
+
+#endif
+
+
+   !!---------------------------------------------------------------------
+   !! Active tracer parameters
+   !!---------------------------------------------------------------------
+   INTEGER, PUBLIC, PARAMETER ::   jpts   = 2    !: Number of active tracers (=2, i.e. T & S )
+   INTEGER, PUBLIC, PARAMETER ::   jp_tem = 1    !: indice for temperature
+   INTEGER, PUBLIC, PARAMETER ::   jp_sal = 2    !: indice for salinity
+
+   !!---------------------------------------------------------------------
+   !! Domain Matrix size  (if AGRIF, they are not all parameters)
+   !!---------------------------------------------------------------------
 #if defined key_agrif
-   !!---------------------------------------------------------------------
-   !! Agrif variables
-   !!---------------------------------------------------------------------
-   INTEGER, PUBLIC, PARAMETER :: nbghostcells = 1
-   INTEGER, PUBLIC :: nbcellsx = jpiglo - 2 - 2*nbghostcells
-   INTEGER, PUBLIC :: nbcellsy = jpjglo - 2 - 2*nbghostcells
-#endif
+   INTEGER, PUBLIC, PARAMETER ::   nbghostcells = 1                             !: number of ghost cells
+   INTEGER, PUBLIC            ::   nbcellsx     = jpiglo - 2 - 2*nbghostcells   !: number of cells in i-direction
+   INTEGER, PUBLIC            ::   nbcellsy     = jpjglo - 2 - 2*nbghostcells   !: number of cells in j-direction
+   !
+   INTEGER, PUBLIC            ::   jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci   !: first  dimension
+   INTEGER, PUBLIC            ::   jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj   !: second dimension
+   INTEGER, PUBLIC            ::   jpim1 = jpi-1                                            !: inner domain indices
+   INTEGER, PUBLIC            ::   jpjm1 = jpj-1                                            !:   -     -      -
+   INTEGER, PUBLIC            ::   jpkm1 = jpk-1                                            !:   -     -      -
+   INTEGER, PUBLIC            ::   jpij  = jpi*jpj                                          !:  jpi x jpj
+#else
+   INTEGER, PUBLIC, PARAMETER ::   jpi = ( jpiglo-2*jpreci + (jpni-1) ) / jpni + 2*jpreci   !: first  dimension
+   INTEGER, PUBLIC, PARAMETER ::   jpj = ( jpjglo-2*jprecj + (jpnj-1) ) / jpnj + 2*jprecj   !: second dimension
+   INTEGER, PUBLIC, PARAMETER ::   jpim1 = jpi-1                                            !: inner domain indices
+   INTEGER, PUBLIC, PARAMETER ::   jpjm1 = jpj-1                                            !:   -     -      -
+   INTEGER, PUBLIC, PARAMETER ::   jpkm1 = jpk-1                                            !:   -     -      -
+   INTEGER, PUBLIC, PARAMETER ::   jpij  = jpi*jpj                                          !:  jpi x jpj
+#endif
+
    !!---------------------------------------------------------------------
    !! Optimization/control flags
@@ -214,10 +188,4 @@
 #endif
 
-#if defined key_vectopt_memory
-   LOGICAL, PUBLIC, PARAMETER ::   lk_vopt_mem  = .TRUE.   !: vector optimization flag
-#else
-   LOGICAL, PUBLIC, PARAMETER ::   lk_vopt_mem  = .FALSE.  !: vector optimization flag
-#endif
-
 #if defined key_vectopt_loop
    LOGICAL, PUBLIC, PARAMETER ::   lk_vopt_loop = .TRUE.   !: vector optimization flag
@@ -226,4 +194,8 @@
 #endif
 
+   !!----------------------------------------------------------------------
+   !! NEMO/OPA 3.3 , LOCEAN-IPSL (2010) 
+   !! $Id$ 
+   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
    !!======================================================================
 END MODULE par_oce
