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 6862 for branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/TOP_SRC – NEMO

Ignore:
Timestamp:
2016-08-12T15:16:24+02:00 (8 years ago)
Author:
lovato
Message:

#1729 - trunk: removed key_bdy from the code and set usage of ln_bdy. Tested with SETTE.

Location:
branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/TOP_SRC
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/TOP_SRC/TRP/trcnxt.F90

    r6140 r6862  
    3333   USE trdtra 
    3434   USE tranxt 
     35   USE bdy_oce   , ONLY: ln_bdy 
    3536   USE trcbdy          ! BDY open boundaries 
    36    USE bdy_par, only: lk_bdy 
    3737# if defined key_agrif 
    3838   USE agrif_top_interp 
     
    9999      END DO 
    100100 
    101       IF( lk_bdy )  CALL trc_bdy( kt ) 
     101      IF( ln_bdy )  CALL trc_bdy( kt ) 
    102102 
    103103      !                                ! set time step size (Euler/Leapfrog) 
  • branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90

    r6309 r6862  
    2525   USE trcsbc          ! surface boundary condition          (trc_sbc routine) 
    2626   USE zpshde          ! partial step: hor. derivative       (zps_hde routine) 
     27   USE bdy_oce   , ONLY: ln_bdy 
    2728   USE trcbdy          ! BDY open boundaries 
    28    USE bdy_par, only: lk_bdy 
    2929 
    3030#if defined key_agrif 
     
    6565         IF( lk_trabbl )        CALL trc_bbl    ( kt )      ! advective (and/or diffusive) bottom boundary layer scheme 
    6666         IF( ln_trcdmp )        CALL trc_dmp    ( kt )      ! internal damping trends 
    67          IF( lk_bdy )           CALL trc_bdy_dmp( kt )      ! BDY damping trends 
     67         IF( ln_bdy )           CALL trc_bdy_dmp( kt )      ! BDY damping trends 
    6868                                CALL trc_adv    ( kt )      ! horizontal & vertical advection  
    6969         !                                                         ! Partial top/bottom cell: GRADh( trb )   
  • branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r6140 r6862  
    1414   USE par_oce 
    1515   USE par_trc 
    16 #if defined key_bdy 
    17    USE bdy_oce, only: nb_bdy, OBC_DATA 
    18 #endif 
     16   USE bdy_oce, only: ln_bdy, nb_bdy, OBC_DATA 
    1917    
    2018   IMPLICIT NONE 
     
    189187# endif 
    190188   ! 
    191 #if defined key_bdy 
    192189   CHARACTER(len=20), PUBLIC, ALLOCATABLE,  SAVE,  DIMENSION(:)   ::  cn_trc_dflt          ! Default OBC condition for all tracers 
    193190   CHARACTER(len=20), PUBLIC, ALLOCATABLE,  SAVE,  DIMENSION(:)   ::  cn_trc               ! Choice of boundary condition for tracers 
     
    195192   ! External data structure of BDY for TOP. Available elements: cn_obc, ll_trc, trcnow, dmp 
    196193   TYPE(OBC_DATA),    PUBLIC, ALLOCATABLE, DIMENSION(:,:), TARGET ::  trcdta_bdy           !: bdy external data (local process) 
    197 #endif 
    198194   ! 
    199195 
     
    210206      !!------------------------------------------------------------------- 
    211207      USE lib_mpp, ONLY: ctl_warn 
     208      INTEGER :: ierr(2) 
    212209      !!------------------------------------------------------------------- 
    213210      ! 
     211      ierr(:) = 0 
    214212      ALLOCATE( trn(jpi,jpj,jpk,jptra), trb(jpi,jpj,jpk,jptra), tra(jpi,jpj,jpk,jptra),       &   
    215213         &      trc_i(jpi,jpj,jptra)  , trc_o(jpi,jpj,jptra)                          ,       & 
     
    223221         &      ln_trc_sbc(jptra)     , ln_trc_cbc(jptra)     , ln_trc_obc(jptra)     ,       & 
    224222#endif 
    225 #if defined key_bdy 
    226          &      cn_trc_dflt(nb_bdy)   , cn_trc(nb_bdy)        , nn_trcdmp_bdy(nb_bdy) ,       & 
     223         &      STAT = ierr(1)  ) 
     224 
     225      IF ( ln_bdy ) THEN 
     226         ALLOCATE( cn_trc_dflt(nb_bdy)   , cn_trc(nb_bdy)     , nn_trcdmp_bdy(nb_bdy) ,       & 
    227227         &      trcdta_bdy(jptra,nb_bdy)                                              ,       & 
    228 #endif 
    229          &      STAT = trc_alloc  ) 
     228         &      STAT = ierr(2)  ) 
     229      ENDIF 
     230         ! 
     231      trc_alloc = MAXVAL( ierr ) 
    230232 
    231233      IF( trc_alloc /= 0 )   CALL ctl_warn('trc_alloc: failed to allocate arrays') 
  • branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/TOP_SRC/trcbc.F90

    r6140 r6862  
    1919   USE lib_mpp       !  MPP library 
    2020   USE fldread       !  read input fields 
    21 #if defined key_bdy 
    22    USE bdy_oce, only: nb_bdy , idx_bdy, ln_coords_file, rn_time_dmp, rn_time_dmp_out 
    23 #endif 
     21   USE bdy_oce,  ONLY: ln_bdy, nb_bdy , idx_bdy, ln_coords_file, rn_time_dmp, rn_time_dmp_out 
    2422 
    2523   IMPLICIT NONE 
     
    7876      !! 
    7977      NAMELIST/namtrc_bc/ cn_dir_sbc, cn_dir_cbc, cn_dir_obc, sn_trcobc, rn_trofac, sn_trcsbc, rn_trsfac, sn_trccbc, rn_trcfac 
    80 #if defined key_bdy 
    8178      NAMELIST/namtrc_bdy/ cn_trc_dflt, cn_trc, nn_trcdmp_bdy 
    82 #endif 
     79 
    8380      !!---------------------------------------------------------------------- 
    8481      IF( nn_timing == 1 )  CALL timing_start('trc_bc_init') 
     
    128125      IF(lwm) WRITE ( numont, namtrc_bc ) 
    129126 
    130 #if defined key_bdy 
    131       REWIND( numnat_ref )              ! Namelist namtrc_bc in reference namelist : Passive tracer data structure 
    132       READ  ( numnat_ref, namtrc_bdy, IOSTAT = ios, ERR = 903) 
    133 903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_bdy in reference namelist', lwp ) 
    134  
    135       REWIND( numnat_cfg )              ! Namelist namtrc_bc in configuration namelist : Passive tracer data structure 
    136       READ  ( numnat_cfg, namtrc_bdy, IOSTAT = ios, ERR = 904 ) 
    137 904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_bdy in configuration namelist', lwp ) 
    138       IF(lwm) WRITE ( numont, namtrc_bdy ) 
    139       ! setup up preliminary informations for BDY structure 
    140       DO jn = 1, ntrc 
    141          DO ib = 1, nb_bdy 
    142             ! Set type of obc in BDY data structure (around here we may plug user override of obc type from nml) 
    143             IF ( ln_trc_obc(jn) ) THEN 
    144                trcdta_bdy(jn,ib)%cn_obc = TRIM( cn_trc(ib) ) 
    145             ELSE 
    146                trcdta_bdy(jn,ib)%cn_obc = TRIM( cn_trc_dflt(ib) ) 
    147             ENDIF 
    148             ! set damping use in BDY data structure 
    149             trcdta_bdy(jn,ib)%dmp = .false. 
    150             IF(nn_trcdmp_bdy(ib) .EQ. 1 .AND. ln_trc_obc(jn) ) trcdta_bdy(jn,ib)%dmp = .true. 
    151             IF(nn_trcdmp_bdy(ib) .EQ. 2 ) trcdta_bdy(jn,ib)%dmp = .true. 
    152             IF(trcdta_bdy(jn,ib)%cn_obc == 'frs' .AND. nn_trcdmp_bdy(ib) .NE. 0 )  & 
    153                 & CALL ctl_stop( 'Use FRS OR relaxation' ) 
    154             IF (nn_trcdmp_bdy(ib) .LT. 0 .OR. nn_trcdmp_bdy(ib) .GT. 2)            & 
    155                 & CALL ctl_stop( 'Not a valid option for nn_trcdmp_bdy. Allowed: 0,1,2.' ) 
     127      IF ( ln_bdy ) THEN 
     128         REWIND( numnat_ref )              ! Namelist namtrc_bdy in reference namelist : Passive tracer data structure 
     129         READ  ( numnat_ref, namtrc_bdy, IOSTAT = ios, ERR = 903) 
     130903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_bdy in reference namelist', lwp ) 
     131 
     132         REWIND( numnat_cfg )              ! Namelist namtrc_bdy in configuration namelist : Passive tracer data structure 
     133         READ  ( numnat_cfg, namtrc_bdy, IOSTAT = ios, ERR = 904 ) 
     134904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_bdy in configuration namelist', lwp ) 
     135         IF(lwm) WRITE ( numont, namtrc_bdy ) 
     136       
     137         ! setup up preliminary informations for BDY structure 
     138         DO jn = 1, ntrc 
     139            DO ib = 1, nb_bdy 
     140               ! Set type of obc in BDY data structure (around here we may plug user override of obc type from nml) 
     141               IF ( ln_trc_obc(jn) ) THEN 
     142                  trcdta_bdy(jn,ib)%cn_obc = TRIM( cn_trc(ib) ) 
     143               ELSE 
     144                  trcdta_bdy(jn,ib)%cn_obc = TRIM( cn_trc_dflt(ib) ) 
     145               ENDIF 
     146               ! set damping use in BDY data structure 
     147               trcdta_bdy(jn,ib)%dmp = .false. 
     148               IF(nn_trcdmp_bdy(ib) .EQ. 1 .AND. ln_trc_obc(jn) ) trcdta_bdy(jn,ib)%dmp = .true. 
     149               IF(nn_trcdmp_bdy(ib) .EQ. 2 ) trcdta_bdy(jn,ib)%dmp = .true. 
     150               IF(trcdta_bdy(jn,ib)%cn_obc == 'frs' .AND. nn_trcdmp_bdy(ib) .NE. 0 )  & 
     151                   & CALL ctl_stop( 'Use FRS OR relaxation' ) 
     152               IF (nn_trcdmp_bdy(ib) .LT. 0 .OR. nn_trcdmp_bdy(ib) .GT. 2)            & 
     153                   & CALL ctl_stop( 'Not a valid option for nn_trcdmp_bdy. Allowed: 0,1,2.' ) 
     154            ENDDO 
    156155         ENDDO 
    157       ENDDO 
    158  
    159 #else 
    160       ! Force all tracers OBC to false if bdy not used 
    161       ln_trc_obc = .false. 
    162 #endif 
     156      ELSE 
     157         ! Force all tracers OBC to false if bdy not used 
     158         ln_trc_obc = .false. 
     159      ENDIF 
     160 
    163161      ! compose BC data indexes 
    164162      DO jn = 1, ntrc 
     
    198196         WRITE(numout,*) ' ' 
    199197         WRITE(numout,'(a,i3)') '   Total tracers to be initialized with OPEN BCs data:', nb_trcobc 
    200 #if defined key_bdy 
    201          IF ( nb_trcobc > 0 ) THEN 
     198 
     199         IF ( ln_bdy .AND. nb_trcobc > 0 ) THEN 
    202200            WRITE(numout,*) '   #trc        NAME        Boundary     Mult.Fact.   OBC Settings' 
    203201            DO jn = 1, ntrc 
     
    217215            ENDDO 
    218216         ENDIF 
    219 #endif 
     217 
    220218         WRITE(numout,'(2a)') '   OPEN BC data repository : ', TRIM(cn_dir_obc) 
    221219      ENDIF 
     
    225223 
    226224      ! 
    227 #if defined key_bdy 
    228225      ! OPEN Lateral boundary conditions 
    229       IF( nb_trcobc > 0 ) THEN  
     226      IF( ln_bdy .AND. nb_trcobc > 0 ) THEN  
    230227         ALLOCATE ( sf_trcobc(nb_trcobc), rf_trofac(nb_trcobc), nbmap_ptr(nb_trcobc), STAT=ierr1 ) 
    231228         IF( ierr1 > 0 ) THEN 
     
    272269         CALL fld_fill( sf_trcobc, slf_i, cn_dir_obc, 'trc_bc_init', 'Passive tracer OBC data', 'namtrc_bc' ) 
    273270      ENDIF 
    274 #endif 
     271 
    275272      ! SURFACE Boundary conditions 
    276273      IF( nb_trcsbc > 0 ) THEN       !  allocate only if the number of tracer to initialise is greater than zero 
  • branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/TOP_SRC/trcbdy.F90

    r6140 r6862  
    1010   !!            3.6  !  2015     (T. Lovato) Adapt BDY for tracers in TOP component 
    1111   !!---------------------------------------------------------------------- 
    12 #if defined key_bdy && key_top 
    13    !!---------------------------------------------------------------------- 
    14    !!   'key_bdy'                     Unstructured Open Boundary Conditions 
     12#if defined key_top 
    1513   !!---------------------------------------------------------------------- 
    1614   !!   trc_bdy            : Apply open boundary conditions to T and S 
     
    2422   USE lbclnk                       ! ocean lateral boundary conditions (or mpp link) 
    2523   USE in_out_manager               ! I/O manager 
    26    USE bdy_oce, only: idx_bdy, OBC_INDEX, BDYTMASK, lk_bdy       ! ocean open boundary conditions 
     24   USE bdy_oce, only: idx_bdy, OBC_INDEX, BDYTMASK, ln_bdy       ! ocean open boundary conditions 
    2725 
    2826   IMPLICIT NONE 
  • branches/2016/dev_r6522_SIMPLIF_3/NEMOGCM/NEMO/TOP_SRC/trcsub.F90

    r6140 r6862  
    2020#endif 
    2121#if defined key_zdfgls 
    22    USE zdfgls, ONLY: en 
     22   USE zdfgls    , ONLY: en 
    2323#endif 
    2424   USE trabbl 
     
    2626   USE domvvl 
    2727   USE divhor          ! horizontal divergence            (div_hor routine) 
    28    USE sbcrnf, ONLY: h_rnf, nk_rnf   ! River runoff  
    29    USE bdy_oce 
     28   USE sbcrnf    , ONLY: h_rnf, nk_rnf    ! River runoff 
     29   USE bdy_oce   , ONLY: ln_bdy, bdytmask ! BDY 
    3030#if defined key_agrif 
    3131   USE agrif_opa_update 
     
    505505      CALL agrif_ssh( kt ) 
    506506#endif 
    507 #if defined key_bdy 
    508       ssha(:,:) = ssha(:,:) * bdytmask(:,:) 
    509       CALL lbc_lnk( ssha, 'T', 1. )  
    510 #endif 
     507      IF( ln_bdy ) THEN 
     508         ssha(:,:) = ssha(:,:) * bdytmask(:,:) 
     509         CALL lbc_lnk( ssha, 'T', 1. )  
     510      ENDIF 
    511511#endif 
    512512      ! 
     
    520520            &                      - ( e3t_a(:,:,jk) - e3t_b(:,:,jk) )    & 
    521521            &                         * tmask(:,:,jk) * z1_2dt 
    522 #if defined key_bdy 
    523          wn(:,:,jk) = wn(:,:,jk) * bdytmask(:,:) 
    524 #endif 
     522         IF( ln_bdy ) wn(:,:,jk) = wn(:,:,jk) * bdytmask(:,:) 
    525523      END DO 
    526524      ! 
Note: See TracChangeset for help on using the changeset viewer.