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 14037 for NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG/src/OCE/BDY/bdylib.F90 – NEMO

Ignore:
Timestamp:
2020-12-03T12:20:38+01:00 (3 years ago)
Author:
ayoung
Message:

Updated to trunk at 14020. Sette tests passed with change of results for configurations with non-linear ssh. Ticket #2506.

Location:
NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG

    • Property svn:externals
      •  

        old new  
        88 
        99# SETTE 
        10 ^/utils/CI/sette@13292        sette 
         10^/utils/CI/sette_wave@13990         sette 
  • NEMO/branches/2020/dev_r13333_KERNEL-08_techene_gm_HPG_SPG/src/OCE/BDY/bdylib.F90

    r13226 r14037  
    4444      !!---------------------------------------------------------------------- 
    4545      TYPE(OBC_INDEX),                     INTENT(in) ::   idx  ! OBC indices 
    46       REAL(wp), DIMENSION(:,:),            INTENT(in) ::   dta  ! OBC external data 
     46      REAL(wp), DIMENSION(:,:), POINTER,   INTENT(in) ::   dta  ! OBC external data 
    4747      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   phia  ! tracer trend 
    4848      !! 
     
    7373      !!---------------------------------------------------------------------- 
    7474      TYPE(OBC_INDEX),                     INTENT(in) ::   idx  ! OBC indices 
    75       REAL(wp), DIMENSION(:,:),            INTENT(in) ::   dta  ! OBC external data 
     75      REAL(wp), DIMENSION(:,:), POINTER,   INTENT(in) ::   dta  ! OBC external data 
    7676      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   phia  ! tracer trend 
    7777      !! 
     
    100100      !! 
    101101      !!---------------------------------------------------------------------- 
    102       TYPE(OBC_INDEX),                     INTENT(in) ::   idx  ! OBC indices 
    103       REAL(wp), DIMENSION(:,:),            INTENT(in) ::   dta  ! OBC external data 
    104       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   phib  ! before tracer field 
    105       REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   phia  ! tracer trend 
    106       LOGICAL                 , OPTIONAL,  INTENT(in) ::   lrim0   ! indicate if rim 0 is treated 
    107       LOGICAL,                             INTENT(in) ::   ll_npo  ! switch for NPO version 
     102      TYPE(OBC_INDEX),                   INTENT(in   ) ::   idx  ! OBC indices 
     103      REAL(wp), DIMENSION(:,:), POINTER, INTENT(in   ) ::   dta  ! OBC external data 
     104      REAL(wp), DIMENSION(jpi,jpj,jpk),  INTENT(inout) ::   phib  ! before tracer field 
     105      REAL(wp), DIMENSION(jpi,jpj,jpk),  INTENT(inout) ::   phia  ! tracer trend 
     106      LOGICAL ,                          INTENT(in   ) ::   lrim0   ! indicate if rim 0 is treated 
     107      LOGICAL ,                          INTENT(in   ) ::   ll_npo  ! switch for NPO version 
    108108      !! 
    109109      INTEGER  ::   igrd                                    ! grid index 
     
    128128      !! References:  Marchesiello, McWilliams and Shchepetkin, Ocean Modelling vol. 3 (2001)     
    129129      !!---------------------------------------------------------------------- 
    130       TYPE(OBC_INDEX),          INTENT(in   ) ::   idx      ! BDY indices 
    131       INTEGER ,                 INTENT(in   ) ::   igrd     ! grid index 
    132       REAL(wp), DIMENSION(:,:), INTENT(in   ) ::   phib     ! model before 2D field 
    133       REAL(wp), DIMENSION(:,:), INTENT(inout) ::   phia     ! model after 2D field (to be updated) 
    134       REAL(wp), DIMENSION(:, INTENT(in   ) ::   phi_ext  ! external forcing data 
    135       LOGICAL, OPTIONAL,        INTENT(in   ) ::   lrim0    ! indicate if rim 0 is treated 
    136       LOGICAL ,                 INTENT(in   ) ::   ll_npo   ! switch for NPO version 
     130      TYPE(OBC_INDEX),                   INTENT(in   ) ::   idx      ! BDY indices 
     131      INTEGER ,                          INTENT(in   ) ::   igrd     ! grid index 
     132      REAL(wp), DIMENSION(:,:),          INTENT(in   ) ::   phib     ! model before 2D field 
     133      REAL(wp), DIMENSION(:,:),          INTENT(inout) ::   phia     ! model after 2D field (to be updated) 
     134      REAL(wp), DIMENSION(:  ), POINTER, INTENT(in   ) ::   phi_ext  ! external forcing data 
     135      LOGICAL ,                          INTENT(in   ) ::   lrim0    ! indicate if rim 0 is treated 
     136      LOGICAL ,                          INTENT(in   ) ::   ll_npo   ! switch for NPO version 
    137137      ! 
    138138      INTEGER  ::   jb                                     ! dummy loop indices 
     
    188188      END SELECT 
    189189      ! 
    190       IF( PRESENT(lrim0) ) THEN 
    191          IF( lrim0 ) THEN   ;   ibeg = 1                       ;   iend = idx%nblenrim0(igrd)   ! rim 0 
    192          ELSE               ;   ibeg = idx%nblenrim0(igrd)+1   ;   iend = idx%nblenrim(igrd)    ! rim 1 
    193          END IF 
    194       ELSE                  ;   ibeg = 1                       ;   iend = idx%nblenrim(igrd)    ! both 
    195       END IF 
     190      IF( lrim0 ) THEN   ;   ibeg = 1                       ;   iend = idx%nblenrim0(igrd)   ! rim 0 
     191      ELSE               ;   ibeg = idx%nblenrim0(igrd)+1   ;   iend = idx%nblenrim(igrd)    ! rim 1 
     192      ENDIF 
    196193      ! 
    197194      DO jb = ibeg, iend 
     
    275272           &                    - (1.-zsign_ups) * zry * ( phib(iijp1,ijjp1) - phib(ii   ,ij    ) ) & 
    276273           &                    + zwgt * ( phi_ext(jb) - phib(ii,ij) ) ) / ( 1. + zrx )  
    277          end if 
     274         endif 
    278275         phia(ii,ij) = phia(ii,ij) * zmask(ii,ij) 
    279276      END DO 
     
    293290      !! References:  Marchesiello, McWilliams and Shchepetkin, Ocean Modelling vol. 3 (2001)     
    294291      !!---------------------------------------------------------------------- 
    295       TYPE(OBC_INDEX),            INTENT(in   ) ::   idx      ! BDY indices 
    296       INTEGER ,                   INTENT(in   ) ::   igrd     ! grid index 
    297       REAL(wp), DIMENSION(:,:,:), INTENT(in   ) ::   phib     ! model before 3D field 
    298       REAL(wp), DIMENSION(:,:,:), INTENT(inout) ::   phia     ! model after 3D field (to be updated) 
    299       REAL(wp), DIMENSION(:,:, INTENT(in   ) ::   phi_ext  ! external forcing data 
    300       LOGICAL, OPTIONAL,          INTENT(in   ) ::   lrim0    ! indicate if rim 0 is treated 
    301       LOGICAL ,                   INTENT(in   ) ::   ll_npo   ! switch for NPO version 
     292      TYPE(OBC_INDEX),                     INTENT(in   ) ::   idx      ! BDY indices 
     293      INTEGER ,                            INTENT(in   ) ::   igrd     ! grid index 
     294      REAL(wp), DIMENSION(:,:,:),          INTENT(in   ) ::   phib     ! model before 3D field 
     295      REAL(wp), DIMENSION(:,:,:),          INTENT(inout) ::   phia     ! model after 3D field (to be updated) 
     296      REAL(wp), DIMENSION(:,:  ), POINTER, INTENT(in   ) ::   phi_ext  ! external forcing data 
     297      LOGICAL ,                            INTENT(in   ) ::   lrim0    ! indicate if rim 0 is treated 
     298      LOGICAL ,                            INTENT(in   ) ::   ll_npo   ! switch for NPO version 
    302299      ! 
    303300      INTEGER  ::   jb, jk                                 ! dummy loop indices 
     
    353350      END SELECT 
    354351      ! 
    355       IF( PRESENT(lrim0) ) THEN 
    356          IF( lrim0 ) THEN   ;   ibeg = 1                       ;   iend = idx%nblenrim0(igrd)   ! rim 0 
    357          ELSE               ;   ibeg = idx%nblenrim0(igrd)+1   ;   iend = idx%nblenrim(igrd)    ! rim 1 
    358          END IF 
    359       ELSE                  ;   ibeg = 1                       ;   iend = idx%nblenrim(igrd)    ! both 
    360       END IF 
     352      IF( lrim0 ) THEN   ;   ibeg = 1                       ;   iend = idx%nblenrim0(igrd)   ! rim 0 
     353      ELSE               ;   ibeg = idx%nblenrim0(igrd)+1   ;   iend = idx%nblenrim(igrd)    ! rim 1 
     354      ENDIF 
    361355      ! 
    362356      DO jk = 1, jpk 
     
    441435              &                       - (1.-zsign_ups) * zry * ( phib(iijp1,ijjp1,jk) - phib(ii   ,ij   ,jk) ) & 
    442436              &                       + zwgt * ( phi_ext(jb,jk) - phib(ii,ij,jk) ) ) / ( 1. + zrx )  
    443             end if 
     437            endif 
    444438            phia(ii,ij,jk) = phia(ii,ij,jk) * zmask(ii,ij,jk) 
    445439         END DO 
     
    466460      REAL(wp), DIMENSION(:,:,:), INTENT(inout)  ::   phia     ! model after 3D field (to be updated), must be masked 
    467461      TYPE(OBC_INDEX),            INTENT(in   )  ::   idx      ! OBC indices 
    468       LOGICAL, OPTIONAL,          INTENT(in   )  ::   lrim0    ! indicate if rim 0 is treated 
     462      LOGICAL ,                   INTENT(in   )  ::   lrim0    ! indicate if rim 0 is treated 
    469463      !!  
    470464      REAL(wp) ::   zweight 
     
    486480      END SELECT 
    487481      ! 
    488       IF( PRESENT(lrim0) ) THEN 
    489          IF( lrim0 ) THEN   ;   ibeg = 1                       ;   iend = idx%nblenrim0(igrd)   ! rim 0 
    490          ELSE               ;   ibeg = idx%nblenrim0(igrd)+1   ;   iend = idx%nblenrim(igrd)    ! rim 1 
    491          END IF 
    492       ELSE                  ;   ibeg = 1                       ;   iend = idx%nblenrim(igrd)    ! both 
    493       END IF 
     482      IF( lrim0 ) THEN   ;   ibeg = 1                       ;   iend = idx%nblenrim0(igrd)   ! rim 0 
     483      ELSE               ;   ibeg = idx%nblenrim0(igrd)+1   ;   iend = idx%nblenrim(igrd)    ! rim 1 
     484      ENDIF 
    494485      ! 
    495486      DO ib = ibeg, iend 
Note: See TracChangeset for help on using the changeset viewer.