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

Changeset 389 for trunk/NEMO/OPA_SRC/SOL


Ignore:
Timestamp:
2006-03-09T18:22:04+01:00 (18 years ago)
Author:
opalod
Message:

RB:nemo_v1_update_038: first integration of Agrif :

  • configuration parameters are just integer when agrif is used
  • add call to agrif routines with key_agrif
Location:
trunk/NEMO/OPA_SRC/SOL
Files:
3 edited

Legend:

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

    r312 r389  
    6767      gccd             !: vector such that ca.gccd=a.d (ca-1=gcdprc) 
    6868 
     69#if defined key_AGRIF 
     70      REAL(wp), DIMENSION(jpi,jpj) :: laplacu, laplacv 
     71#endif 
     72 
    6973#if defined key_feti 
    7074   !!---------------------------------------------------------------------- 
  • trunk/NEMO/OPA_SRC/SOL/solmat.F90

    r359 r389  
    182182       
    183183!!cr  ENDIF 
     184#endif 
     185#if defined key_AGRIF 
     186       IF (.NOT.AGRIF_ROOT()) THEN 
     187        
     188       IF ( (nbondi == -1)  .OR. (nbondi == 2) ) bmask(2,:)=0. 
     189       IF ( (nbondi ==  1)  .OR. (nbondi == 2) ) bmask(nlci-1,:)=0. 
     190       IF ( (nbondj == -1)  .OR. (nbondj == 2) ) bmask(:,2)=0. 
     191       IF ( (nbondj ==  1)  .OR. (nbondj == 2) ) bmask(:,nlcj-1)=0. 
     192 
     193      DO jj = 2, jpjm1 
     194         DO ji = 2, jpim1 
     195            zcoef = z2dt * z2dt * grav * rnu * bmask(ji,jj) 
     196            !  south coefficient 
     197            IF( ((nbondj == -1)  .OR. (nbondj == 2)) .AND. ( jj == 3 ) ) THEN 
     198               zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1)*(1.-vmask(ji,jj-1,1)) 
     199            ELSE 
     200               zcoefs = -zcoef * hv(ji,jj-1) * e1v(ji,jj-1)/e2v(ji,jj-1) 
     201            END IF 
     202            gcp(ji,jj,1) = zcoefs 
     203 
     204            !  west coefficient 
     205       IF( ( (nbondi == -1)  .OR. (nbondi == 2) ) .AND. ( ji == 3 )  ) THEN 
     206               zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj)*(1.-umask(ji-1,jj,1)) 
     207            ELSE 
     208               zcoefw = -zcoef * hu(ji-1,jj) * e2u(ji-1,jj)/e1u(ji-1,jj) 
     209            END IF 
     210            gcp(ji,jj,2) = zcoefw 
     211 
     212            !   east coefficient 
     213            IF( ((nbondi == 1)  .OR. (nbondi == 2)) .AND. ( ji == nlci-2 ) ) THEN 
     214               zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj)*(1.-umask(ji,jj,1)) 
     215            ELSE 
     216               zcoefe = -zcoef * hu(ji,jj) * e2u(ji,jj)/e1u(ji,jj) 
     217            END IF 
     218            gcp(ji,jj,3) = zcoefe 
     219 
     220            !   north coefficient 
     221            IF( ((nbondj == 1)  .OR. (nbondj == 2)) .AND. ( jj == nlcj-2 ) ) THEN 
     222               zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj)*(1.-vmask(ji,jj,1)) 
     223            ELSE 
     224               zcoefn = -zcoef * hv(ji,jj) * e1v(ji,jj)/e2v(ji,jj) 
     225            END IF 
     226            gcp(ji,jj,4) = zcoefn 
     227 
     228            ! diagonal coefficient 
     229            gcdmat(ji,jj) = e1t(ji,jj)*e2t(ji,jj)*bmask(ji,jj) & 
     230                            - zcoefs -zcoefw -zcoefe -zcoefn 
     231         END DO 
     232      END DO 
     233       
     234       ENDIF 
    184235#endif 
    185236 
  • trunk/NEMO/OPA_SRC/SOL/solver.F90

    r367 r389  
    7979      !! * Local declarations 
    8080      INTEGER :: ji, jj   ! dummy loop indices 
     81      CHARACTER(len=80) :: clname 
    8182 
    8283      NAMELIST/namsol/ nsolv, nsol_arp, nmin, nmax, nmod, eps, resmax, sor, epsisl, nmisl, rnu 
     
    8889 
    8990      ! open elliptic solver statistics file 
    90       CALL ctlopn( numsol, 'solver.stat', 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL',   & 
     91      clname = 'solver.stat' 
     92      CALL ctlopn( numsol, clname, 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL',   & 
    9193                   1, numout, lwp, 1 ) 
    9294 
Note: See TracChangeset for help on using the changeset viewer.