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 7953 for branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC/agrif_top_interp.F90 – NEMO

Ignore:
Timestamp:
2017-04-23T09:30:41+02:00 (7 years ago)
Author:
gm
Message:

#1880 (HPC-09): add zdfphy (the ZDF manager) + remove all key_...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/NST_SRC/agrif_top_interp.F90

    r6140 r7953  
    11MODULE agrif_top_interp 
     2   !!====================================================================== 
     3   !!                   ***  MODULE  agrif_top_interp  *** 
     4   !! AGRIF: interpolation package 
     5   !!====================================================================== 
     6   !! History :  2.0  !  ???  
     7   !!---------------------------------------------------------------------- 
    28#if defined key_agrif && defined key_top 
     9   !!---------------------------------------------------------------------- 
     10   !!   'key_agrif'                                              AGRIF zoom 
     11   !!   'key_top'                                           on-line tracers 
     12   !!---------------------------------------------------------------------- 
    313   USE par_oce 
    414   USE oce 
     
    818   USE par_trc 
    919   USE trc 
     20   ! 
    1021   USE lib_mpp 
    1122   USE wrk_nemo   
     
    1627   PUBLIC Agrif_trc, interptrn 
    1728 
    18 #  include "vectopt_loop_substitute.h90" 
    1929  !!---------------------------------------------------------------------- 
    20    !! NEMO/NST 3.6 , NEMO Consortium (2010) 
     30   !! NEMO/NST 4.0 , NEMO Consortium (2017) 
    2131   !! $Id$ 
    2232   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 
     
    2636   SUBROUTINE Agrif_trc 
    2737      !!---------------------------------------------------------------------- 
    28       !!                  ***  ROUTINE Agrif_trc  *** 
     38      !!                   ***  ROUTINE Agrif_trc  *** 
    2939      !!---------------------------------------------------------------------- 
    3040      ! 
    3141      IF( Agrif_Root() )   RETURN 
    32  
    33       Agrif_SpecialValue    = 0.e0 
     42      ! 
     43      Agrif_SpecialValue    = 0._wp 
    3444      Agrif_UseSpecialValue = .TRUE. 
    35  
     45      ! 
    3646      CALL Agrif_Bc_variable( trn_id, procname=interptrn ) 
    3747      Agrif_UseSpecialValue = .FALSE. 
     
    4050 
    4151 
    42    SUBROUTINE interptrn(ptab,i1,i2,j1,j2,k1,k2,n1,n2,before,nb,ndir) 
    43       !!--------------------------------------------- 
    44       !!   *** ROUTINE interptrn *** 
    45       !!--------------------------------------------- 
    46       REAL(wp), DIMENSION(i1:i2,j1:j2,k1:k2,n1:n2), INTENT(inout) :: ptab 
    47       INTEGER, INTENT(in) :: i1,i2,j1,j2,k1,k2,n1,n2 
    48       LOGICAL, INTENT(in) :: before 
    49       INTEGER, INTENT(in) :: nb , ndir 
    50       ! 
    51       INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    52       INTEGER :: imin, imax, jmin, jmax 
    53       REAL(wp) ::   zrhox , zalpha1, zalpha2, zalpha3 
    54       REAL(wp) ::   zalpha4, zalpha5, zalpha6, zalpha7 
    55       LOGICAL :: western_side, eastern_side,northern_side,southern_side 
    56  
    57       IF (before) THEN          
     52   SUBROUTINE interptrn( ptab, i1, i2, j1, j2, k1, k2, n1, n2, before, nb, ndir ) 
     53      !!---------------------------------------------------------------------- 
     54      !!                   *** ROUTINE interptrn *** 
     55      !!---------------------------------------------------------------------- 
     56      REAL(wp), DIMENSION(i1:i2,j1:j2,k1:k2,n1:n2), INTENT(inout) ::   ptab 
     57      INTEGER                                     , INTENT(in   ) ::   i1, i2, j1, j2, k1, k2, n1, n2 
     58      LOGICAL                                     , INTENT(in   ) ::   before 
     59      INTEGER                                     , INTENT(in   ) ::   nb , ndir 
     60      !! 
     61      INTEGER ::   ji, jj, jk, jn   ! dummy loop indices 
     62      INTEGER ::   imin, imax, jmin, jmax 
     63      LOGICAL ::   western_side, eastern_side,northern_side,southern_side 
     64      REAL(wp)::   zrhox , zalpha1, zalpha2, zalpha3 
     65      REAL(wp)::   zalpha4, zalpha5, zalpha6, zalpha7 
     66      !!---------------------------------------------------------------------- 
     67      ! 
     68      IF( before ) THEN          
    5869         ptab(i1:i2,j1:j2,k1:k2,n1:n2) = trn(i1:i2,j1:j2,k1:k2,n1:n2) 
    5970      ELSE 
     
    185196 
    186197#else 
     198   !!---------------------------------------------------------------------- 
     199   !!   Empty module                                           no TOP AGRIF 
     200   !!---------------------------------------------------------------------- 
    187201CONTAINS 
    188202   SUBROUTINE Agrif_TOP_Interp_empty 
     
    193207   END SUBROUTINE Agrif_TOP_Interp_empty 
    194208#endif 
     209 
     210   !!====================================================================== 
    195211END MODULE agrif_top_interp 
Note: See TracChangeset for help on using the changeset viewer.