MODULE sol_oce !!====================================================================== !! *** MODULE sol_oce *** !! Ocean solver : solver variables defined in memory !!===================================================================== !! !! ** Purpose : Define in memory solver variables !! !! History : !! 9.0 ! 02-11 (G. Madec) F90: Free form and module !!---------------------------------------------------------------------- !! OPA 9.0 , LOCEAN-IPSL (2005) !! $Id$ !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt !!---------------------------------------------------------------------- !! * Modules used USE par_oce ! ocean parameters IMPLICIT NONE PRIVATE !!---------------------------- !! elliptic solver: SOR or PCG !! --------------------------- INTEGER , PUBLIC :: & !!: namsol elliptic solver / free surface nsolv = 1 , & !: = 1/2 type of elliptic solver nsol_arp = 0 , & !: = 0/1 absolute/relative precision convergence test nmin = 300 , & !: minimum of iterations for the SOR solver nmax = 800 , & !: maximum of iterations for the SOR solver nmod = 10 !: frequency of test for the SOR solver REAL(wp), PUBLIC :: & !!: namsol elliptic solver / free surface eps = 1.e-6_wp , & !: absolute precision of the solver resmax = 1.e-14_wp , & !: absolute precision for the SOR solver sor = 1.92_wp , & !: optimal coefficient for the SOR solver rnu = 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 niter !: number of iteration done by the solver REAL(wp), PUBLIC :: & !: epsr, & !: relative precision for SOR & PCG solvers rnorme, res, & !: intermediate modulus, solver residu alph, & !: coefficient =(gcr,gcr)/(gcx,gccd) beta, & !: coefficient =(rn+1,rn+1)/(rn,rn) radd, & !: coefficient =(gccd,gcdes) rr !: coefficient =(rn,rn) REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj,4) :: & !: gcp !: barotropic matrix extra-diagonal elements REAL(wp), PUBLIC, DIMENSION(1-jpr2di:jpi+jpr2di,1-jpr2dj:jpj+jpr2dj) :: & !: gcx, gcxb, & !: now, before solution of the elliptic equation gcdprc, & !: inverse diagonal preconditioning matrix gcdmat, & !: diagonal preconditioning matrix gcb, & !: second member of the barotropic linear system gcr, & !: residu =b-a.x gcdes, & !: vector descente gccd !: vector such that ca.gccd=a.d (ca-1=gcdprc) #if defined key_agrif REAL(wp), DIMENSION(jpi,jpj) :: laplacu, laplacv #endif !!---------------------------------------------------------------------- END MODULE sol_oce