MODULE sol_oce !!====================================================================== !! *** MODULE sol_oce *** !! Ocean solver : elliptic solver variables defined in memory !!====================================================================== !! History : 1.0 ! 02-11 (G. Madec) F90: Free form and module !!---------------------------------------------------------------------- USE par_oce ! ocean parameters IMPLICIT NONE PRIVATE ! !!* Namelist namsol : elliptic solver * INTEGER , PUBLIC :: nn_solv = 1 !: = 1/2 type of elliptic solver INTEGER , PUBLIC :: nn_sol_arp = 0 !: = 0/1 absolute/relative precision convergence test INTEGER , PUBLIC :: nn_nmin = 300 !: minimum of iterations for the SOR solver INTEGER , PUBLIC :: nn_nmax = 800 !: maximum of iterations for the SOR solver INTEGER , PUBLIC :: nn_nmod = 10 !: frequency of test for the SOR solver REAL(wp), PUBLIC :: rn_eps = 1.e-6_wp !: absolute precision of the solver REAL(wp), PUBLIC :: rn_resmax = 1.e-14_wp !: absolute precision for the SOR solver REAL(wp), PUBLIC :: rn_sor = 1.92_wp !: optimal coefficient for the SOR solver REAL(wp), PUBLIC :: rn_nu = 1.0_wp !: strength of the additional force used in free surface CHARACTER(len=1), PUBLIC :: c_solver_pt = 'T' !: nature of grid-points T (S) for free surface case INTEGER , PUBLIC :: ncut !: indicator of solver convergence INTEGER , PUBLIC :: niter !: number of iteration done by the solver REAL(wp), PUBLIC :: eps, epsr !: relative precision for SOR & PCG solvers REAL(wp), PUBLIC :: rnorme !: intermediate modulus REAL(wp), PUBLIC :: res !: solver residu REAL(wp), PUBLIC :: alph !: coefficient =(gcr,gcr)/(gcx,gccd) REAL(wp), PUBLIC :: beta !: coefficient =(rn+1,rn+1)/(rn,rn) REAL(wp), PUBLIC :: radd !: coefficient =(gccd,gcdes) REAL(wp), PUBLIC :: rr !: coefficient =(rn,rn) REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj,4) :: gcp !: matrix extra-diagonal elements REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj) :: gcx !: now solution of the elliptic eq. REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj) :: gcxb !: before solution of the elliptic eq. REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj) :: gcdprc !: inverse diagonal preconditioning matrix REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj) :: gcdmat !: diagonal preconditioning matrix REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj) :: gcb !: second member of the elliptic eq. REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj) :: gcr !: residu =b-a.x REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj) :: gcdes !: vector descente REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj) :: gccd !: gccd= gcdprc^-1.a.d #if defined key_agrif REAL(wp), DIMENSION(jpi,jpj) :: laplacu, laplacv #endif !!---------------------------------------------------------------------- !! NEMO/OPA 3.3 , NEMO Consortium (2010) !! $Id$ !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) !!---------------------------------------------------------------------- END MODULE sol_oce