Changeset 16 for trunk/NEMO/OPA_SRC/SOL/sol_oce.F90
- Timestamp:
- 2004-02-17T09:06:15+01:00 (20 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SOL/sol_oce.F90
r3 r16 16 16 17 17 IMPLICIT NONE 18 PRIVATE 18 19 19 !!----------------------------------- -----------------------------------20 !!----------------------------------- 20 21 !! elliptic solver: SOR, PCG or FETI 21 !! ---------------------------------- -----------------22 INTEGER :: & !!!namsol elliptic solver / island / free surface23 nsolv = 1 , & ! = 1/2/3 type of elliptic solver24 nmax = 800 , & ! maximum of iterations for the solver25 nmisl = 4000 ! maximum pcg iterations for island22 !! ---------------------------------- 23 INTEGER , PUBLIC :: & !!: namsol elliptic solver / island / free surface 24 nsolv = 1 , & !: = 1/2/3 type of elliptic solver 25 nmax = 800 , & !: maximum of iterations for the solver 26 nmisl = 4000 !: maximum pcg iterations for island 26 27 27 REAL(wp) :: & !!!namsol elliptic solver / island / free surface28 eps = 1.e-6_wp , & ! absolute precision of the solver29 sor = 1.76_wp , & ! optimal coefficient for sor solver30 epsisl = 1.e-10_wp, & ! absolute precision on stream function solver31 rnu = 1.0_wp ! strength of the additional force used in free surface28 REAL(wp), PUBLIC :: & !!: namsol elliptic solver / island / free surface 29 eps = 1.e-6_wp , & !: absolute precision of the solver 30 sor = 1.76_wp , & !: optimal coefficient for sor solver 31 epsisl = 1.e-10_wp, & !: absolute precision on stream function solver 32 rnu = 1.0_wp !: strength of the additional force used in free surface 32 33 33 INTEGER :: &34 ncut, & ! indicator of solver convergence35 niter ! number of iteration done by the solver34 CHARACTER(len=1), PUBLIC :: & !: 35 c_solver_pt = 'T' !: nature of grid-points T (S) for free surface case 36 ! ! F (G) for rigid-lid case 36 37 37 REAL(wp) :: & 38 epsr, & ! relative precision for SOR & PCG solvers 39 epsilo, & ! precision for the FETI solver 40 rnorme, res, & ! intermediate modulus, solver residu 41 alph, & ! coefficient =(gcr,gcr)/(gcx,gccd) 42 beta, & ! coefficient =(rn+1,rn+1)/(rn,rn) 43 radd, & ! coefficient =(gccd,gcdes) 44 rr ! coefficient =(rn,rn) 38 INTEGER , PUBLIC :: & !: 39 ncut, & !: indicator of solver convergence 40 niter !: number of iteration done by the solver 45 41 46 REAL(wp), DIMENSION(jpi,jpj,4) :: & 47 gcp ! barotropic matrix extra-diagonal elements 42 REAL(wp), PUBLIC :: & !: 43 epsr, & !: relative precision for SOR & PCG solvers 44 epsilo, & !: precision for the FETI solver 45 rnorme, res, & !: intermediate modulus, solver residu 46 alph, & !: coefficient =(gcr,gcr)/(gcx,gccd) 47 beta, & !: coefficient =(rn+1,rn+1)/(rn,rn) 48 radd, & !: coefficient =(gccd,gcdes) 49 rr !: coefficient =(rn,rn) 48 50 49 REAL(wp), DIMENSION(jpi,jpj) :: & 50 gcx, gcxb, & ! now, before solution of the elliptic equation 51 gcdprc, & ! inverse diagonal preconditioning matrix 52 gcdmat, & ! diagonal preconditioning matrix 53 gcb, & ! second member of the barotropic linear system 54 gcr, & ! residu =b-a.x 55 gcdes, & ! vector descente 56 gccd ! vector such that ca.gccd=a.d (ca-1=gcdprc) 51 REAL(wp), PUBLIC, DIMENSION(jpi,jpj,4) :: & !: 52 gcp !: barotropic matrix extra-diagonal elements 53 54 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: & !: 55 gcx, gcxb, & !: now, before solution of the elliptic equation 56 gcdprc, & !: inverse diagonal preconditioning matrix 57 gcdmat, & !: diagonal preconditioning matrix 58 gcb, & !: second member of the barotropic linear system 59 gcr, & !: residu =b-a.x 60 gcdes, & !: vector descente 61 gccd !: vector such that ca.gccd=a.d (ca-1=gcdprc) 57 62 58 63 #if defined key_feti … … 67 72 !! malistin() : concatened list of interface nodes 68 73 69 INTEGER :: nim,nxm, &74 INTEGER, PUBLIC :: nim,nxm, & 70 75 malxm,malim,malxmax,malimax, & 71 76 nifmat,njfmat,nelem,npe,matopo, & … … 85 90 madwork 86 91 87 INTEGER :: mfet(jpi*jpj+2*jpi+2*jpj+51)92 INTEGER, PUBLIC :: mfet(jpi*jpj+2*jpi+2*jpj+51) 88 93 89 REAL(wp) :: wfeti(jpj*jpi*jpi+13*jpi*jpj+19*(jpi+jpj) & 94 REAL(wp), PUBLIC :: & !: 95 wfeti(jpj*jpi*jpi+13*jpi*jpj+19*(jpi+jpj) & 90 96 +4*jpnij+33 & 91 97 +2*(jpi+jpj)*(jpnij-jpni)*jpi & … … 94 100 +3*(jpnij-jpnj+jperio)*jpj) 95 101 96 REAL(wp) :: res2, rcompt102 REAL(wp), PUBLIC :: res2, rcompt 97 103 98 104 #endif
Note: See TracChangeset
for help on using the changeset viewer.