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.
Changeset 16 for trunk/NEMO/OPA_SRC/SOL/sol_oce.F90 – NEMO

Ignore:
Timestamp:
2004-02-17T09:06:15+01:00 (20 years ago)
Author:
opalod
Message:

CT : UPDATE001 : First major NEMO update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/SOL/sol_oce.F90

    r3 r16  
    1616 
    1717   IMPLICIT NONE 
     18   PRIVATE 
    1819 
    19    !!---------------------------------------------------------------------- 
     20   !!----------------------------------- 
    2021   !! elliptic solver: SOR, PCG or FETI 
    21    !! --------------------------------------------------- 
    22    INTEGER  ::              & !!! namsol   elliptic solver / island / free surface 
    23       nsolv =    1 ,        &  ! = 1/2/3 type of elliptic solver 
    24       nmax  =  800 ,        &  ! maximum of iterations for the solver 
    25       nmisl = 4000             ! maximum pcg iterations for island 
     22   !! ---------------------------------- 
     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 
    2627      
    27    REAL(wp) ::              & !!! namsol   elliptic solver / island / free surface 
    28       eps    = 1.e-6_wp ,   &  ! absolute precision of the solver 
    29       sor    = 1.76_wp  ,   &  ! optimal coefficient for sor solver 
    30       epsisl = 1.e-10_wp,   &  ! absolute precision on stream function solver 
    31       rnu    = 1.0_wp          ! strength of the additional force used in free surface 
     28   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 
    3233 
    33    INTEGER  ::   & 
    34       ncut,         &  ! indicator of solver convergence 
    35       niter            ! number of iteration done by the solver 
     34   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 
    3637 
    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 
    4541 
    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) 
    4850 
    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) 
    5762 
    5863#if defined key_feti 
     
    6772   !!      malistin()       : concatened list of interface nodes 
    6873 
    69    INTEGER :: nim,nxm,   & 
     74   INTEGER, PUBLIC :: nim,nxm,   & 
    7075       malxm,malim,malxmax,malimax,   & 
    7176       nifmat,njfmat,nelem,npe,matopo,   & 
     
    8590       madwork 
    8691 
    87    INTEGER :: mfet(jpi*jpj+2*jpi+2*jpj+51) 
     92   INTEGER, PUBLIC :: mfet(jpi*jpj+2*jpi+2*jpj+51) 
    8893 
    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)   & 
    9096       +4*jpnij+33   & 
    9197       +2*(jpi+jpj)*(jpnij-jpni)*jpi   & 
     
    94100       +3*(jpnij-jpnj+jperio)*jpj)  
    95101 
    96    REAL(wp) ::   res2, rcompt 
     102   REAL(wp), PUBLIC ::   res2, rcompt 
    97103 
    98104#endif 
Note: See TracChangeset for help on using the changeset viewer.