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 359 for trunk/NEMO/OPA_SRC/SOL – NEMO

Changeset 359 for trunk/NEMO/OPA_SRC/SOL


Ignore:
Timestamp:
2005-12-21T11:46:45+01:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_033 : RB + CT : Add new surface pressure gradient algorithms

Location:
trunk/NEMO/OPA_SRC/SOL
Files:
6 edited

Legend:

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

    r247 r359  
    3737      !!     Solve the ellipic equation for the barotropic stream function 
    3838      !!     system (default option) or the transport divergence system 
    39       !!     (lk_dynspg_fsc=T) using a Finite Elements Tearing and  
     39      !!     (lk_dynspg_flt=T) using a Finite Elements Tearing and  
    4040      !!      Interconnecting (FETI) approach. 
    4141      !!     In the former case, the barotropic stream function trend has a 
  • trunk/NEMO/OPA_SRC/SOL/solmat.F90

    r315 r359  
    1919   USE lbclnk          ! lateral boudary conditions 
    2020   USE lib_mpp         ! distributed memory computing 
    21    USE dynspg_rl 
    22    USE dynspg_fsc 
    2321 
    2422   IMPLICIT NONE 
     
    4644      !!      The matrix is built for the barotropic stream function system. 
    4745      !!      a diagonal preconditioning matrix is also defined. 
    48       !!       * lk_dynspg_fsc=T: free surface formulation 
     46      !!       * lk_dynspg_flt=T: free surface formulation 
    4947      !!      The matrix is built for the divergence of the transport system 
    5048      !!      a diagonal preconditioning matrix is also defined. 
     
    6765      !!   8.5  !  02-08  (G. Madec)  F90: Free form 
    6866      !!        !  02-11  (C. Talandier, A-M. Treguier) Free surface & Open boundaries 
     67      !!   9.0  !  05-11  (V. Garnier) Surface pressure gradient organization 
    6968      !!---------------------------------------------------------------------- 
    7069      !! * Local declarations 
     
    9695      z2dt = 2. * rdt 
    9796 
    98 #if defined key_dynspg_fsc && ! defined key_obc 
    99 !!cr      IF( lk_dynspg_fsc .AND. .NOT.lk_obc ) THEN   !bug missing lk_dynspg_fsc_atsk 
     97#if defined key_dynspg_flt && ! defined key_obc 
     98!!cr      IF( lk_dynspg_flt .AND. .NOT.lk_obc ) THEN   !bug missing lk_dynspg_flt_atsk 
    10099 
    101100      ! defined the coefficients for free surface elliptic system 
     
    117116      END DO 
    118117       
    119 #  elif defined key_dynspg_fsc && defined key_obc 
    120 !!cr      ELSEIF( lk_dynspg_fsc .AND. lk_obc ) THEN     !bug missing lk_dynspg_fsc_atsk  
     118#  elif defined key_dynspg_flt && defined key_obc 
     119!!cr      ELSEIF( lk_dynspg_flt .AND. lk_obc ) THEN     !bug missing lk_dynspg_flt_atsk  
    121120 
    122121      !   defined gcdmat in the case of open boundaries 
     
    200199      ! account for the existence of the south symmetric bassin. 
    201200       
    202 !!cr      IF( .NOT.lk_dynspg_fsc ) THEN   !bug missing lk_dynspg_fsc_atsk 
    203 #if ! defined key_dynspg_fsc 
     201!!cr      IF( .NOT.lk_dynspg_flt ) THEN   !bug missing lk_dynspg_flt_atsk 
     202#if ! defined key_dynspg_flt 
    204203      IF( nperio == 2 ) THEN 
    205204         DO ji = 1, jpi 
  • trunk/NEMO/OPA_SRC/SOL/solpcg.F90

    r247 r359  
    3838      !! ** Purpose :   Solve the ellipic equation for the barotropic stream  
    3939      !!      function system (lk_dynspg_rl=T) or the transport divergence  
    40       !!      system (lk_dynspg_fsc=T) using a diagonal preconditionned 
     40      !!      system (lk_dynspg_flt=T) using a diagonal preconditionned 
    4141      !!      conjugate gradient method. 
    4242      !!      In the former case, the barotropic stream function trend has a 
  • trunk/NEMO/OPA_SRC/SOL/solsor.F90

    r247 r359  
    3737      !! ** Purpose :   Solve the ellipic equation for the barotropic stream  
    3838      !!      function system (lk_dynspg_rl=T) or the transport divergence  
    39       !!      system (lk_dynspg_fsc=T) using a red-black successive-over- 
     39      !!      system (lk_dynspg_flt=T) using a red-black successive-over- 
    4040      !!      relaxation method. 
    4141      !!       In the former case, the barotropic stream function trend has a 
  • trunk/NEMO/OPA_SRC/SOL/solsor_e.F90

    r313 r359  
    3737      !! ** Purpose :   Solve the ellipic equation for the barotropic stream  
    3838      !!      function system (lk_dynspg_rl=T) or the transport divergence  
    39       !!      system (lk_dynspg_fsc=T) using a red-black successive-over- 
     39      !!      system (lk_dynspg_flt=T) using a red-black successive-over- 
    4040      !!      relaxation method. 
    4141      !!       In the former case, the barotropic stream function trend has a 
  • trunk/NEMO/OPA_SRC/SOL/solver.F90

    r312 r359  
    1919   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
    2020   USE lib_mpp 
    21    USE dynspg_rl        
    22    USE dynspg_fsc       
    23    USE dynspg_fsc_atsk       
     21   USE dynspg          ! choice/control of key cpp for surface pressure gradient 
    2422 
    2523   IMPLICIT NONE 
     
    4038      !!       * default option: barotropic stream function system 
    4139      !!         and islands initialization (if lk_isl=T) 
    42       !!       * lk_dynspg_fsc = T : transport divergence system. No specific 
     40      !!       * lk_dynspg_flt = T : transport divergence system. No specific 
    4341      !!         treatment of islands. 
    4442      !!       
    4543      !! ** Method : 
    4644      !!       - Compute the local depth of the water column at u- and v-point 
    47       !!      (lk_dynspg_fsc = T) or its inverse (lk_dynspg_rl = T). 
     45      !!      (lk_dynspg_flt = T) or its inverse (lk_dynspg_rl = T). 
    4846      !!      The local depth of the water column is computed by summing  
    4947      !!      the vertical scale factors. For its inverse, the thickness of 
     
    6462      !!                                u- and v-point. (lk_dynspg_rl = T) 
    6563      !!             - hu, hv   : masked local depth at u- and v- points 
    66       !!                                (lk_dynspg_fsc = T) 
     64      !!                                (lk_dynspg_flt = T) 
    6765      !!             - c_solver_pt : nature of the gridpoint at which the 
    6866      !!                                solver is applied 
     
    7775      !!        !  98-10  (G. Roullet, G. Madec)  free surface  
    7876      !!   9.0  !  03-07  (G. Madec)  free form, F90 
     77      !!    "   !  05-11  (V. Garnier) Surface pressure gradient organization 
    7978      !!---------------------------------------------------------------------- 
    8079      !! * Local declarations 
     
    126125      ENDIF 
    127126 
    128       IF( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) THEN 
     127      IF( lk_dynspg_flt ) THEN 
    129128         IF(lwp) WRITE(numout,*) 
    130129         IF(lwp) WRITE(numout,*) '          free surface formulation' 
    131130         IF( lk_isl ) THEN 
    132131            IF(lwp) WRITE(numout,cform_err) 
    133             IF(lwp) WRITE(numout,*) ' key_islands inconsistent with key_dynspg_fsc' 
     132            IF(lwp) WRITE(numout,*) ' key_islands inconsistent with key_dynspg_flt' 
    134133            nstop = nstop + 1 
    135134         ENDIF 
     
    139138      ELSE 
    140139         IF(lwp) WRITE(numout,cform_err) 
    141          IF(lwp) WRITE(numout,*) '          Chose at least one surface pressure gradient calculation: free surface or rigid-lid' 
     140         IF(lwp) WRITE(numout,*) '          Choose only one surface pressure gradient calculation: filtered or rigid-lid' 
     141         IF(lwp) WRITE(numout,*) '          Should not call this routine if dynspg_exp or dynspg_ts has been chosen' 
    142142         nstop = nstop + 1 
    143143      ENDIF 
    144       IF( ( lk_dynspg_fsc .OR. lk_dynspg_fsc_tsk ) .AND. lk_dynspg_rl ) THEN 
     144      IF( lk_dynspg_flt .AND. lk_dynspg_rl ) THEN 
    145145         IF(lwp) WRITE(numout,cform_err) 
    146146         IF(lwp) WRITE(numout,*) '          Chose between free surface or rigid-lid, not both' 
Note: See TracChangeset for help on using the changeset viewer.