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 31 for trunk/NEMO/OPA_SRC/DYN/dynspg_rl.F90 – NEMO

Ignore:
Timestamp:
2004-02-17T10:19:59+01:00 (20 years ago)
Author:
opalod
Message:

CT : BUGFIX012 : Running problem for EEL5 configuration is solved

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/DYN/dynspg_rl.F90

    r3 r31  
    3636 
    3737   !! * Shared module variables 
    38    LOGICAL, PUBLIC, PARAMETER ::   lk_dynspg_rl = .TRUE.   ! rigid-lid flag 
     38   LOGICAL, PUBLIC, PARAMETER ::   lk_dynspg_rl = .TRUE.    !: rigid-lid flag 
    3939 
    4040   !! * Substitutions 
    4141#  include "domzgr_substitute.h90" 
    4242#  include "vectopt_loop_substitute.h90" 
     43#  include "obc_vectopt_loop_substitute.h90" 
    4344   !!---------------------------------------------------------------------- 
    4445   !!   OPA 9.0 , LODYC-IPSL  (2003) 
     
    115116         spgu(:,:) = 0.e0      ! surface pressure gradient (i-direction)  
    116117         spgv(:,:) = 0.e0      ! surface pressure gradient (j-direction) 
    117          bsfb(:,:) = 0.e0      ! before barotropic stream-function 
    118          bsfn(:,:) = 0.e0      ! now    barotropic stream-function 
    119          bsfd(:,:) = 0.e0      ! barotropic stream-function trend 
    120118      ENDIF 
    121119 
     
    209207         END DO 
    210208      END DO 
    211 # if defined key_mpp 
    212       CALL mpp_sum( rnorme ) 
    213 # endif 
     209      IF( lk_mpp )   CALL mpp_sum( rnorme )   ! sum over the global domain 
     210 
    214211      epsr = eps*eps*rnorme 
    215212      ncut = 0 
     
    229226            CALL sol_pcg( kindic ) 
    230227         CASE( 2 )                     ! successive-over-relaxation 
    231             CALL sol_sor( kt, kindic ) 
     228            CALL sol_sor( kindic ) 
    232229         CASE( 3 )                     ! FETI solver 
    233230            CALL sol_fet( kindic ) 
     
    400397         END DO 
    401398      END DO 
    402 #   if defined key_mpp 
    403       CALL mppobc( bebnd, jpjed, jpjef, jpieob, 3*3, 2, jpj ) 
    404 #   endif 
     399      IF( lk_mpp )   CALL mppobc( bebnd, jpjed, jpjef, jpieob, 3*3, 2, jpj ) 
    405400      ENDIF 
    406401 
     
    436431         END DO 
    437432      END DO 
    438 #   if defined key_mpp 
    439       CALL mppobc( bwbnd, jpjwd, jpjwf, jpiwob, 3*3, 2, jpj ) 
    440 #   endif 
     433      IF( lk_mpp )   CALL mppobc( bwbnd, jpjwd, jpjwf, jpiwob, 3*3, 2, jpj ) 
    441434      ENDIF 
    442435 
     
    472465         END DO 
    473466      END DO 
    474 #   if defined key_mpp 
    475       CALL mppobc( bnbnd, jpind, jpinf, jpjnob, 3*3, 1, jpi ) 
    476 #   endif 
     467      IF( lk_mpp )   CALL mppobc( bnbnd, jpind, jpinf, jpjnob, 3*3, 1, jpi ) 
    477468      ENDIF 
    478469 
    479470      IF( lpsouthobc ) THEN 
    480       ! njsob,(jpsd,jpsf) 
    481       IF( kt < nit000+3 .AND. .NOT.ln_rstart ) THEN 
    482          DO ji = nis0m1, nis1 
    483             ! fields itm2 <== itm 
    484             bsbnd(ji,ib  ,itm2) = bsbnd(ji,ib  ,itm) 
    485             bsbnd(ji,ibm ,itm2) = bsbnd(ji,ibm ,itm) 
    486             bsbnd(ji,ibm2,itm2) = bsbnd(ji,ibm2,itm) 
    487             bsbnd(ji,ib  ,itm ) = bsbnd(ji,ib  ,it ) 
    488          END DO 
    489       ELSE 
    490          DO jj = fs_njs0, fs_njs1   ! vector opt. 
     471         ! njsob,(jpsd,jpsf) 
     472         IF( kt < nit000+3 .AND. .NOT.ln_rstart ) THEN 
    491473            DO ji = nis0m1, nis1 
     474               ! fields itm2 <== itm 
    492475               bsbnd(ji,ib  ,itm2) = bsbnd(ji,ib  ,itm) 
    493476               bsbnd(ji,ibm ,itm2) = bsbnd(ji,ibm ,itm) 
    494477               bsbnd(ji,ibm2,itm2) = bsbnd(ji,ibm2,itm) 
    495                ! fields itm <== it  plus time filter at the boundary 
    496                bsbnd(jj,ib  ,itm ) = atfp * ( bsbnd(jj,ib,itm) + bsfn(ji,jj) ) + atfp1 * bsbnd(jj,ib,it) 
    497                bsbnd(ji,ibm ,itm ) = bsbnd(ji,ibm ,it ) 
    498                bsbnd(ji,ibm2,itm ) = bsbnd(ji,ibm2,it ) 
    499             END DO 
    500          END DO 
    501       ENDIF 
    502       DO jj = fs_njs0, fs_njs1   ! vector opt. 
    503          DO ji = nis0m1, nis1  
    504             ! fields it <== now (kt+1) 
    505             bsbnd(ji,ib  ,it  ) = bsfn (ji,jj  ) 
    506             bsbnd(ji,ibm ,it  ) = bsfn (ji,jj+1) 
    507             bsbnd(ji,ibm2,it  ) = bsfn (ji,jj+2) 
    508          END DO 
    509       END DO 
    510 #   if defined key_mpp 
    511       CALL mppobc( bsbnd, jpisd, jpisf, jpjsob, 3*3, 1, jpi ) 
    512 #   endif 
     478               bsbnd(ji,ib  ,itm ) = bsbnd(ji,ib  ,it ) 
     479            END DO 
     480         ELSE 
     481            DO jj = fs_njs0, fs_njs1   ! vector opt. 
     482               DO ji = nis0m1, nis1 
     483                  bsbnd(ji,ib  ,itm2) = bsbnd(ji,ib  ,itm) 
     484                  bsbnd(ji,ibm ,itm2) = bsbnd(ji,ibm ,itm) 
     485                  bsbnd(ji,ibm2,itm2) = bsbnd(ji,ibm2,itm) 
     486                  ! fields itm <== it  plus time filter at the boundary 
     487                  bsbnd(jj,ib  ,itm ) = atfp * ( bsbnd(jj,ib,itm) + bsfn(ji,jj) ) + atfp1 * bsbnd(jj,ib,it) 
     488                  bsbnd(ji,ibm ,itm ) = bsbnd(ji,ibm ,it ) 
     489                  bsbnd(ji,ibm2,itm ) = bsbnd(ji,ibm2,it ) 
     490               END DO 
     491            END DO 
     492         ENDIF 
     493         DO jj = fs_njs0, fs_njs1   ! vector opt. 
     494            DO ji = nis0m1, nis1  
     495               ! fields it <== now (kt+1) 
     496               bsbnd(ji,ib  ,it  ) = bsfn (ji,jj  ) 
     497               bsbnd(ji,ibm ,it  ) = bsfn (ji,jj+1) 
     498               bsbnd(ji,ibm2,it  ) = bsfn (ji,jj+2) 
     499            END DO 
     500         END DO 
     501         IF( lk_mpp )   CALL mppobc( bsbnd, jpisd, jpisf, jpjsob, 3*3, 1, jpi ) 
    513502      ENDIF 
    514503# endif 
     
    547536   !!   'key_dynspg_rl'                                        NO rigid lid 
    548537   !!---------------------------------------------------------------------- 
    549    LOGICAL, PUBLIC, PARAMETER ::   lk_dynspg_rl = .FALSE.   ! rigid-lid flag 
     538   LOGICAL, PUBLIC, PARAMETER ::   lk_dynspg_rl = .FALSE.   !: rigid-lid flag 
    550539CONTAINS 
    551540   SUBROUTINE dyn_spg_rl( kt, kindic )       ! Empty routine 
    552       WRITE(*,*) kt, kindic 
     541      WRITE(*,*) 'dyn_spg_rl: You should not have seen this print! error?', kt, kindic 
    553542   END SUBROUTINE dyn_spg_rl 
    554543#endif 
Note: See TracChangeset for help on using the changeset viewer.