New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
sol_oce.F90 in branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/SOL – NEMO

source: branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/SOL/sol_oce.F90 @ 2236

Last change on this file since 2236 was 2236, checked in by cetlod, 14 years ago

First guess of NEMO_v3.3

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 3.5 KB
Line 
1MODULE sol_oce
2   !!======================================================================
3   !!                    ***  MODULE  sol_oce  ***
4   !! Ocean solver :  elliptic solver variables defined in memory
5   !!======================================================================
6   !! History :  1.0  !  02-11  (G. Madec)  F90: Free form and module
7   !!----------------------------------------------------------------------
8   USE par_oce         ! ocean parameters
9
10   IMPLICIT NONE
11   PRIVATE
12
13   !                                             !!* Namelist namsol : elliptic solver *
14   INTEGER , PUBLIC ::   nn_solv    =    1        !: = 1/2 type of elliptic solver
15   INTEGER , PUBLIC ::   nn_sol_arp =    0        !: = 0/1 absolute/relative precision convergence test
16   INTEGER , PUBLIC ::   nn_nmin    =  300        !: minimum of iterations for the SOR solver
17   INTEGER , PUBLIC ::   nn_nmax    =  800        !: maximum of iterations for the SOR solver
18   INTEGER , PUBLIC ::   nn_nmod    =   10        !: frequency of test for the SOR solver
19   REAL(wp), PUBLIC ::   rn_eps     =  1.e-6_wp   !: absolute precision of the solver
20   REAL(wp), PUBLIC ::   rn_resmax  = 1.e-14_wp   !: absolute precision for the SOR solver
21   REAL(wp), PUBLIC ::   rn_sor     =   1.92_wp   !: optimal coefficient for the SOR solver
22   REAL(wp), PUBLIC ::   rn_nu      =    1.0_wp   !: strength of the additional force used in free surface
23
24   CHARACTER(len=1), PUBLIC ::   c_solver_pt = 'T'   !: nature of grid-points T (S) for free surface case
25
26   INTEGER , PUBLIC ::   ncut        !: indicator of solver convergence
27   INTEGER , PUBLIC ::   niter       !: number of iteration done by the solver
28
29   REAL(wp), PUBLIC ::   eps, epsr   !: relative precision for SOR & PCG solvers
30   REAL(wp), PUBLIC ::   rnorme      !: intermediate modulus
31   REAL(wp), PUBLIC ::   res         !: solver residu
32   REAL(wp), PUBLIC ::   alph        !: coefficient  =(gcr,gcr)/(gcx,gccd)
33   REAL(wp), PUBLIC ::   beta        !: coefficient  =(rn+1,rn+1)/(rn,rn)
34   REAL(wp), PUBLIC ::   radd        !: coefficient  =(gccd,gcdes)
35   REAL(wp), PUBLIC ::   rr          !: coefficient  =(rn,rn)
36
37   REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj,4) ::   gcp     !: matrix extra-diagonal elements
38   REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj)   ::   gcx     !: now    solution of the elliptic eq.
39   REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj)   ::   gcxb    !: before solution of the elliptic eq.
40   REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj)   ::   gcdprc  !: inverse diagonal preconditioning matrix
41   REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj)   ::   gcdmat  !: diagonal preconditioning matrix
42   REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj)   ::   gcb     !: second member of the elliptic eq.
43   REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj)   ::   gcr     !: residu =b-a.x
44   REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj)   ::   gcdes   !: vector descente
45   REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj)   ::   gccd    !: gccd= gcdprc^-1.a.d
46
47#if defined key_agrif
48      REAL(wp), DIMENSION(jpi,jpj) :: laplacu, laplacv
49#endif
50
51   !!----------------------------------------------------------------------
52   !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009)
53   !! $Id$
54   !! Software governed by the CeCILL licence  (NEMOGCM/License_CeCILL.txt)
55   !!----------------------------------------------------------------------
56END MODULE sol_oce
Note: See TracBrowser for help on using the repository browser.