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 15787 – NEMO

Changeset 15787


Ignore:
Timestamp:
2022-04-22T11:35:37+02:00 (2 years ago)
Author:
jmedwards01
Message:

Merged in UKMO/r14075_read_tides_fix@15779 to avoid clash in bdytides.F90.

Location:
NEMO/branches/UKMO/NEMO_4.0.4_CO9_wadcpl/src/OCE/BDY
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/UKMO/NEMO_4.0.4_CO9_wadcpl/src/OCE/BDY/bdydta.F90

    r15786 r15787  
    9696      INTEGER ::  jbdy, jfld, jstart, jend, ib, jl    ! dummy loop indices 
    9797      INTEGER ::  ii, ij, ik, igrd, ipl               ! local integers 
     98      INTEGER,   DIMENSION(jpbgrd)     ::   ilen1 
    9899      TYPE(OBC_DATA)         , POINTER ::   dta_alias        ! short cut 
    99100      TYPE(FLD), DIMENSION(:), POINTER ::   bf_alias 
     
    352353            DO jbdy = 1, nb_bdy      ! Tidal component added in ts loop 
    353354               IF ( nn_dyn2d_dta(jbdy) .GE. 2 ) THEN 
    354                   IF( ASSOCIATED(dta_bdy(jbdy)%ssh) ) dta_bdy_s(jbdy)%ssh(:) = dta_bdy(jbdy)%ssh(:) 
    355                   IF( ASSOCIATED(dta_bdy(jbdy)%u2d) ) dta_bdy_s(jbdy)%u2d(:) = dta_bdy(jbdy)%u2d(:) 
    356                   IF( ASSOCIATED(dta_bdy(jbdy)%v2d) ) dta_bdy_s(jbdy)%v2d(:) = dta_bdy(jbdy)%v2d(:) 
     355                  IF( cn_dyn2d(jbdy) == 'frs' ) THEN 
     356                     ilen1(:)=idx_bdy(jbdy)%nblen(:) 
     357                  ELSE 
     358                     ilen1(:)=idx_bdy(jbdy)%nblenrim(:) 
     359                  ENDIF 
     360 
     361                  IF( ASSOCIATED(dta_bdy(jbdy)%ssh) ) dta_bdy_s(jbdy)%ssh(1:ilen1(1)) = dta_bdy(jbdy)%ssh(1:ilen1(1)) 
     362                  IF( ASSOCIATED(dta_bdy(jbdy)%u2d) ) dta_bdy_s(jbdy)%u2d(1:ilen1(2)) = dta_bdy(jbdy)%u2d(1:ilen1(2)) 
     363                  IF( ASSOCIATED(dta_bdy(jbdy)%v2d) ) dta_bdy_s(jbdy)%v2d(1:ilen1(3)) = dta_bdy(jbdy)%v2d(1:ilen1(3)) 
    357364               ENDIF 
    358365            END DO 
  • NEMO/branches/UKMO/NEMO_4.0.4_CO9_wadcpl/src/OCE/BDY/bdytides.F90

    r15786 r15787  
    6969      INTEGER                                   ::   ii, ij              ! dummy loop indices 
    7070      INTEGER                                   ::   inum, igrd 
    71       INTEGER                                   ::   isz                 ! bdy data size 
     71      INTEGER, DIMENSION(3)                     ::   ilen0               ! length of boundary data (from OBC arrays) 
    7272      INTEGER                                   ::   ios                 ! Local integer output status for namelist read 
    7373      CHARACTER(len=80)                         ::   clfile              ! full file name for tidal input file  
     
    117117            IF(lwp) WRITE(numout,*) ' ' 
    118118 
     119            ! If FRS scheme is used, we assume that tidal is needed over the whole relaxation area       
     120            IF( cn_dyn2d(ib_bdy) == 'frs' ) THEN   ;   ilen0(:) = idx_bdy(ib_bdy)%nblen   (:) 
     121            ELSE                                   ;   ilen0(:) = idx_bdy(ib_bdy)%nblenrim(:) 
     122            ENDIF 
     123 
    119124            ! Allocate space for tidal harmonics data - get size from BDY data arrays 
    120125            ! Allocate also slow varying data in the case of time splitting: 
     
    122127            ! ----------------------------------------------------------------------- 
    123128            IF( ASSOCIATED(dta%ssh) ) THEN   ! we use bdy ssh on this mpi subdomain 
    124                isz = SIZE(dta%ssh) 
    125                ALLOCATE( td%ssh0( isz, nb_harmo, 2 ), td%ssh( isz, nb_harmo, 2 ), dta_bdy_s(ib_bdy)%ssh( isz ) ) 
     129               ALLOCATE( td%ssh0( ilen0(1), nb_harmo, 2 ), td%ssh( ilen0(1), nb_harmo, 2 ), dta_bdy_s(ib_bdy)%ssh( ilen0(1) ) ) 
    126130               dta_bdy_s(ib_bdy)%ssh(:) = 0._wp   ! needed? 
    127131            ENDIF 
    128132            IF( ASSOCIATED(dta%u2d) ) THEN   ! we use bdy u2d on this mpi subdomain 
    129                isz = SIZE(dta%u2d) 
    130                ALLOCATE( td%u0  ( isz, nb_harmo, 2 ), td%u  ( isz, nb_harmo, 2 ), dta_bdy_s(ib_bdy)%u2d( isz ) ) 
     133               ALLOCATE( td%u0  ( ilen0(2), nb_harmo, 2 ), td%u  ( ilen0(2), nb_harmo, 2 ), dta_bdy_s(ib_bdy)%u2d( ilen0(2) ) ) 
    131134               dta_bdy_s(ib_bdy)%u2d(:) = 0._wp   ! needed? 
    132135            ENDIF 
    133136            IF( ASSOCIATED(dta%v2d) ) THEN   ! we use bdy v2d on this mpi subdomain 
    134                isz = SIZE(dta%v2d) 
    135                ALLOCATE( td%v0  ( isz, nb_harmo, 2 ), td%v  ( isz, nb_harmo, 2 ), dta_bdy_s(ib_bdy)%v2d( isz ) ) 
     137               ALLOCATE( td%v0  ( ilen0(3), nb_harmo, 2 ), td%v  ( ilen0(3), nb_harmo, 2 ), dta_bdy_s(ib_bdy)%v2d( ilen0(3) ) ) 
    136138               dta_bdy_s(ib_bdy)%v2d(:) = 0._wp   ! needed? 
    137139            ENDIF 
     
    214216                  !                                                              ! SSH fields 
    215217                  IF( ASSOCIATED(dta%ssh) ) THEN   ! we use bdy ssh on this mpi subdomain 
    216                      isz = SIZE(dta%ssh) 
    217218                     clfile = TRIM(filtide)//TRIM(Wave(ntide(itide))%cname_tide)//'_grid_T.nc' 
    218219                     CALL iom_open( clfile, inum ) 
    219                      CALL fld_map( inum, 'z1', dta_read(1:isz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,1), kbdy=ib_bdy ) 
    220                      td%ssh0(:,itide,1) = dta_read(1:isz,1,1) 
    221                      CALL fld_map( inum, 'z2', dta_read(1:isz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,1), kbdy=ib_bdy ) 
    222                      td%ssh0(:,itide,2) = dta_read(1:isz,1,1) 
     220                     CALL fld_map( inum, 'z1', dta_read(1:ilen0(1),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,1) , kbdy=ib_bdy) 
     221                     td%ssh0(:,itide,1) = dta_read(1:ilen0(1),1,1) 
     222                     CALL fld_map( inum, 'z2', dta_read(1:ilen0(1),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,1) , kbdy=ib_bdy) 
     223                     td%ssh0(:,itide,2) = dta_read(1:ilen0(1),1,1) 
    223224                     CALL iom_close( inum ) 
    224225                  ENDIF 
    225226                  !                                                              ! U fields 
    226227                  IF( ASSOCIATED(dta%u2d) ) THEN   ! we use bdy u2d on this mpi subdomain 
    227                      isz = SIZE(dta%u2d) 
    228228                     clfile = TRIM(filtide)//TRIM(Wave(ntide(itide))%cname_tide)//'_grid_U.nc' 
    229229                     CALL iom_open( clfile, inum ) 
    230                      CALL fld_map( inum, 'u1', dta_read(1:isz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,2), kbdy=ib_bdy ) 
    231                      td%u0(:,itide,1) = dta_read(1:isz,1,1) 
    232                      CALL fld_map( inum, 'u2', dta_read(1:isz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,2), kbdy=ib_bdy ) 
    233                      td%u0(:,itide,2) = dta_read(1:isz,1,1) 
     230                     CALL fld_map( inum, 'u1', dta_read(1:ilen0(2),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,2) , kbdy=ib_bdy) 
     231                     td%u0(:,itide,1) = dta_read(1:ilen0(2),1,1) 
     232                     CALL fld_map( inum, 'u2', dta_read(1:ilen0(2),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,2) , kbdy=ib_bdy) 
     233                     td%u0(:,itide,2) = dta_read(1:ilen0(2),1,1) 
    234234                     CALL iom_close( inum ) 
    235235                  ENDIF 
    236236                  !                                                              ! V fields 
    237237                  IF( ASSOCIATED(dta%v2d) ) THEN   ! we use bdy v2d on this mpi subdomain 
    238                      isz = SIZE(dta%v2d) 
    239238                     clfile = TRIM(filtide)//TRIM(Wave(ntide(itide))%cname_tide)//'_grid_V.nc' 
    240239                     CALL iom_open( clfile, inum ) 
    241                      CALL fld_map( inum, 'v1', dta_read(1:isz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,3), kbdy=ib_bdy ) 
    242                      td%v0(:,itide,1) = dta_read(1:isz,1,1) 
    243                      CALL fld_map( inum, 'v2', dta_read(1:isz,1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,3), kbdy=ib_bdy ) 
    244                      td%v0(:,itide,2) = dta_read(1:isz,1,1) 
     240                     CALL fld_map( inum, 'v1', dta_read(1:ilen0(3),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,3) , kbdy=ib_bdy) 
     241                     td%v0(:,itide,1) = dta_read(1:ilen0(3),1,1) 
     242                     CALL fld_map( inum, 'v2', dta_read(1:ilen0(3),1:1,1:1) , 1, idx_bdy(ib_bdy)%nbmap(:,3) , kbdy=ib_bdy) 
     243                     td%v0(:,itide,2) = dta_read(1:ilen0(3),1,1) 
    245244                     CALL iom_close( inum ) 
    246245                  ENDIF 
Note: See TracChangeset for help on using the changeset viewer.