Ignore:
Timestamp:
2015-12-21T12:35:23+01:00 (5 years ago)
Author:
timgraham
Message:

Merge of branches/2015/dev_merge_2015 back into trunk. Merge excludes NEMOGCM/TOOLS/OBSTOOLS/ for now due to issues with the change of file type. Will sort these manually with further commits.

Branch merged as follows:
In the working copy of branch ran:
svn merge svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk@HEAD
Small conflicts due to bug fixes applied to trunk since the dev_merge_2015 was copied. Bug fixes were applied to the branch as well so these were easy to resolve.
Branch committed at this stage

In working copy run:
svn switch svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/trunk
to switch working copy

Run:
svn merge —reintegrate svn+ssh://forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/branches/2015/dev_merge_2015
to merge the branch into the trunk and then commit - no conflicts at this stage.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90

    r5930 r6140  
    4545   INTEGER, ALLOCATABLE, DIMENSION(:)   ::   nb_bdy_fld        ! Number of fields to update for each boundary set. 
    4646   INTEGER                              ::   nb_bdy_fld_sum    ! Total number of fields to update for all boundary sets. 
    47  
    4847   LOGICAL,           DIMENSION(jp_bdy) ::   ln_full_vel_array ! =T => full velocities in 3D boundary conditions 
    4948                                                               ! =F => baroclinic velocities in 3D boundary conditions 
     
    5857#endif 
    5958 
    60 #  include "domzgr_substitute.h90" 
    6159   !!---------------------------------------------------------------------- 
    6260   !! NEMO/OPA 3.3 , NEMO Consortium (2010) 
     
    7573      !!                 
    7674      !!---------------------------------------------------------------------- 
    77       !! 
    78       INTEGER, INTENT( in )           ::   kt    ! ocean time-step index  
    79       INTEGER, INTENT( in ), OPTIONAL ::   jit   ! subcycle time-step index (for timesplitting option) 
    80       INTEGER, INTENT( in ), OPTIONAL ::   time_offset  ! time offset in units of timesteps. NB. if jit 
    81                                                         ! is present then units = subcycle timesteps. 
    82                                                         ! time_offset = 0 => get data at "now" time level 
    83                                                         ! time_offset = -1 => get data at "before" time level 
    84                                                         ! time_offset = +1 => get data at "after" time level 
    85                                                         ! etc. 
    86       !! 
    87       INTEGER     ::  ib_bdy, jfld, jstart, jend, ib, ii, ij, ik, igrd, jl  ! local indices 
     75      INTEGER, INTENT(in)           ::   kt           ! ocean time-step index  
     76      INTEGER, INTENT(in), OPTIONAL ::   jit          ! subcycle time-step index (for timesplitting option) 
     77      INTEGER, INTENT(in), OPTIONAL ::   time_offset  ! time offset in units of timesteps. NB. if jit 
     78      !                                               ! is present then units = subcycle timesteps. 
     79      !                                               ! time_offset = 0 => get data at "now" time level 
     80      !                                               ! time_offset = -1 => get data at "before" time level 
     81      !                                               ! time_offset = +1 => get data at "after" time level 
     82      !                                               ! etc. 
     83      ! 
     84      INTEGER ::  ib_bdy, jfld, jstart, jend, ib, ii, ij, ik, igrd, jl  ! local indices 
    8885      INTEGER,          DIMENSION(jpbgrd) ::   ilen1  
    8986      INTEGER, POINTER, DIMENSION(:)      ::   nblen, nblenrim  ! short cuts 
    9087      TYPE(OBC_DATA), POINTER             ::   dta              ! short cut 
    91       !! 
    9288      !!--------------------------------------------------------------------------- 
    93       !! 
    94       IF( nn_timing == 1 ) CALL timing_start('bdy_dta') 
    95  
     89      ! 
     90      IF( nn_timing == 1 )   CALL timing_start('bdy_dta') 
     91      ! 
    9692      ! Initialise data arrays once for all from initial conditions where required 
    9793      !--------------------------------------------------------------------------- 
    98       IF( kt .eq. nit000 .and. .not. PRESENT(jit) ) THEN 
     94      IF( kt == nit000 .AND. .NOT.PRESENT(jit) ) THEN 
    9995 
    10096         ! Calculate depth-mean currents 
     
    10298          
    10399         DO ib_bdy = 1, nb_bdy 
    104  
     100            ! 
    105101            nblen => idx_bdy(ib_bdy)%nblen 
    106102            nblenrim => idx_bdy(ib_bdy)%nblenrim 
    107103            dta => dta_bdy(ib_bdy) 
    108104 
    109             IF( nn_dyn2d_dta(ib_bdy) .eq. 0 ) THEN  
     105            IF( nn_dyn2d_dta(ib_bdy) == 0 ) THEN  
    110106               ilen1(:) = nblen(:) 
    111107               IF( dta%ll_ssh ) THEN  
     
    135131            ENDIF 
    136132 
    137             IF( nn_dyn3d_dta(ib_bdy) .eq. 0 ) THEN  
     133            IF( nn_dyn3d_dta(ib_bdy) == 0 ) THEN  
    138134               ilen1(:) = nblen(:) 
    139135               IF( dta%ll_u3d ) THEN  
     
    159155            ENDIF 
    160156 
    161             IF( nn_tra_dta(ib_bdy) .eq. 0 ) THEN  
     157            IF( nn_tra_dta(ib_bdy) == 0 ) THEN  
    162158               ilen1(:) = nblen(:) 
    163159               IF( dta%ll_tem ) THEN 
     
    184180 
    185181#if defined key_lim2 
    186             IF( nn_ice_lim_dta(ib_bdy) .eq. 0 ) THEN  
     182            IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN  
    187183               ilen1(:) = nblen(:) 
    188184               IF( dta%ll_frld ) THEN 
     
    212208            ENDIF 
    213209#elif defined key_lim3 
    214             IF( nn_ice_lim_dta(ib_bdy) .eq. 0 ) THEN  
     210            IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN  
    215211               ilen1(:) = nblen(:) 
    216212               IF( dta%ll_a_i ) THEN 
     
    246242            ENDIF 
    247243#endif 
    248  
    249          ENDDO ! ib_bdy 
    250  
    251  
    252       ENDIF ! kt .eq. nit000 
     244         END DO ! ib_bdy 
     245         ! 
     246      ENDIF ! kt == nit000 
    253247 
    254248      ! update external data from files 
     
    258252      DO ib_bdy = 1, nb_bdy    
    259253         dta => dta_bdy(ib_bdy) 
    260          IF( nn_dta(ib_bdy) .eq. 1 ) THEN ! skip this bit if no external data required 
     254         IF( nn_dta(ib_bdy) == 1 ) THEN ! skip this bit if no external data required 
    261255       
    262256            IF( PRESENT(jit) ) THEN 
     
    264258               ! jit is optional argument for fld_read and bdytide_update 
    265259               IF( cn_dyn2d(ib_bdy) /= 'none' ) THEN 
    266                   IF( nn_dyn2d_dta(ib_bdy) .eq. 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays 
    267                      IF( dta%ll_ssh ) dta%ssh(:) = 0.0 
    268                      IF( dta%ll_u2d ) dta%u2d(:) = 0.0 
    269                      IF( dta%ll_u3d ) dta%v2d(:) = 0.0 
     260                  IF( nn_dyn2d_dta(ib_bdy) == 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays 
     261                     IF( dta%ll_ssh ) dta%ssh(:) = 0._wp 
     262                     IF( dta%ll_u2d ) dta%u2d(:) = 0._wp 
     263                     IF( dta%ll_u3d ) dta%v2d(:) = 0._wp 
    270264                  ENDIF 
    271265                  IF (cn_tra(ib_bdy) /= 'runoff') THEN 
    272                      IF( nn_dyn2d_dta(ib_bdy) .EQ. 1 .OR. nn_dyn2d_dta(ib_bdy) .EQ. 3 ) THEN 
     266                     IF( nn_dyn2d_dta(ib_bdy) == 1 .OR. nn_dyn2d_dta(ib_bdy) == 3 ) THEN 
    273267 
    274268                        jend = jstart + dta%nread(2) - 1 
     
    278272                        ! If full velocities in boundary data then extract barotropic velocities from 3D fields 
    279273                        IF( ln_full_vel_array(ib_bdy) .AND.                                             & 
    280                           &    ( nn_dyn2d_dta(ib_bdy) .EQ. 1 .OR. nn_dyn2d_dta(ib_bdy) .EQ. 3 .OR.  & 
    281                           &      nn_dyn3d_dta(ib_bdy) .EQ. 1 ) )THEN 
     274                          &    ( nn_dyn2d_dta(ib_bdy) == 1 .OR. nn_dyn2d_dta(ib_bdy) == 3 .OR.  & 
     275                          &      nn_dyn3d_dta(ib_bdy) == 1 ) )THEN 
    282276 
    283277                           igrd = 2                      ! zonal velocity 
    284                            dta%u2d(:) = 0.0 
     278                           dta%u2d(:) = 0._wp 
    285279                           DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 
    286280                              ii   = idx_bdy(ib_bdy)%nbi(ib,igrd) 
     
    288282                              DO ik = 1, jpkm1 
    289283                                 dta%u2d(ib) = dta%u2d(ib) & 
    290                        &                          + fse3u(ii,ij,ik) * umask(ii,ij,ik) * dta%u3d(ib,ik) 
     284                       &                          + e3u_n(ii,ij,ik) * umask(ii,ij,ik) * dta%u3d(ib,ik) 
    291285                              END DO 
    292                               dta%u2d(ib) =  dta%u2d(ib) * hur(ii,ij) 
     286                              dta%u2d(ib) =  dta%u2d(ib) * r1_hu_n(ii,ij) 
    293287                           END DO 
    294288                           igrd = 3                      ! meridional velocity 
    295                            dta%v2d(:) = 0.0 
     289                           dta%v2d(:) = 0._wp 
    296290                           DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 
    297291                              ii   = idx_bdy(ib_bdy)%nbi(ib,igrd) 
     
    299293                              DO ik = 1, jpkm1 
    300294                                 dta%v2d(ib) = dta%v2d(ib) & 
    301                        &                       + fse3v(ii,ij,ik) * vmask(ii,ij,ik) * dta%v3d(ib,ik) 
     295                       &                       + e3v_n(ii,ij,ik) * vmask(ii,ij,ik) * dta%v3d(ib,ik) 
    302296                              END DO 
    303                               dta%v2d(ib) =  dta%v2d(ib) * hvr(ii,ij) 
     297                              dta%v2d(ib) =  dta%v2d(ib) * r1_hv_n(ii,ij) 
    304298                           END DO 
    305299                        ENDIF                     
     
    331325                  END DO 
    332326               ELSE 
    333                   IF( nn_dyn2d_dta(ib_bdy) .eq. 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays 
    334                      IF( dta%ll_ssh ) dta%ssh(:) = 0.0 
    335                      IF( dta%ll_u2d ) dta%u2d(:) = 0.0 
    336                      IF( dta%ll_v2d ) dta%v2d(:) = 0.0 
     327                  IF( nn_dyn2d_dta(ib_bdy) == 2 ) THEN ! tidal harmonic forcing ONLY: initialise arrays 
     328                     IF( dta%ll_ssh ) dta%ssh(:) = 0._wp 
     329                     IF( dta%ll_u2d ) dta%u2d(:) = 0._wp 
     330                     IF( dta%ll_v2d ) dta%v2d(:) = 0._wp 
    337331                  ENDIF 
    338332                  IF( dta%nread(1) .gt. 0 ) THEN ! update external data 
     
    343337                  ! If full velocities in boundary data then split into barotropic and baroclinic data 
    344338                  IF( ln_full_vel_array(ib_bdy) .and.                                             & 
    345                     & ( nn_dyn2d_dta(ib_bdy) .EQ. 1 .OR. nn_dyn2d_dta(ib_bdy) .EQ. 3 .OR. & 
    346                     &   nn_dyn3d_dta(ib_bdy) .EQ. 1 ) ) THEN 
     339                    & ( nn_dyn2d_dta(ib_bdy) == 1 .OR. nn_dyn2d_dta(ib_bdy) == 3 .OR. & 
     340                    &   nn_dyn3d_dta(ib_bdy) == 1 ) ) THEN 
    347341                     igrd = 2                      ! zonal velocity 
    348                      dta%u2d(:) = 0.0 
     342                     dta%u2d(:) = 0._wp 
    349343                     DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 
    350344                        ii   = idx_bdy(ib_bdy)%nbi(ib,igrd) 
     
    352346                        DO ik = 1, jpkm1 
    353347                           dta%u2d(ib) = dta%u2d(ib) & 
    354                  &                       + fse3u(ii,ij,ik) * umask(ii,ij,ik) * dta%u3d(ib,ik) 
     348                 &                       + e3u_n(ii,ij,ik) * umask(ii,ij,ik) * dta%u3d(ib,ik) 
    355349                        END DO 
    356                         dta%u2d(ib) =  dta%u2d(ib) * hur(ii,ij) 
     350                        dta%u2d(ib) =  dta%u2d(ib) * r1_hu_n(ii,ij) 
    357351                        DO ik = 1, jpkm1 
    358352                           dta%u3d(ib,ik) = dta%u3d(ib,ik) - dta%u2d(ib) 
     
    360354                     END DO 
    361355                     igrd = 3                      ! meridional velocity 
    362                      dta%v2d(:) = 0.0 
     356                     dta%v2d(:) = 0._wp 
    363357                     DO ib = 1, idx_bdy(ib_bdy)%nblen(igrd) 
    364358                        ii   = idx_bdy(ib_bdy)%nbi(ib,igrd) 
     
    366360                        DO ik = 1, jpkm1 
    367361                           dta%v2d(ib) = dta%v2d(ib) & 
    368                  &                       + fse3v(ii,ij,ik) * vmask(ii,ij,ik) * dta%v3d(ib,ik) 
     362                 &                       + e3v_n(ii,ij,ik) * vmask(ii,ij,ik) * dta%v3d(ib,ik) 
    369363                        END DO 
    370                         dta%v2d(ib) =  dta%v2d(ib) * hvr(ii,ij) 
     364                        dta%v2d(ib) =  dta%v2d(ib) * r1_hv_n(ii,ij) 
    371365                        DO ik = 1, jpkm1 
    372366                           dta%v3d(ib,ik) = dta%v3d(ib,ik) - dta%v2d(ib) 
     
    413407                  ij   = idx_bdy(ib_bdy)%nbj(ib,igrd) 
    414408                  dta_bdy(ib_bdy)%ssh(ib) = dta_bdy(ib_bdy)%ssh(ib) + ssh_ib(ii,ij) 
    415                ENDDO 
    416             ENDIF 
    417          ENDDO 
     409               END DO 
     410            ENDIF 
     411         END DO 
    418412      ENDIF 
    419  
     413      ! 
    420414      IF( nn_timing == 1 ) CALL timing_stop('bdy_dta') 
    421  
    422       END SUBROUTINE bdy_dta 
    423  
    424  
    425       SUBROUTINE bdy_dta_init 
     415      ! 
     416   END SUBROUTINE bdy_dta 
     417 
     418 
     419   SUBROUTINE bdy_dta_init 
    426420      !!---------------------------------------------------------------------- 
    427421      !!                   ***  SUBROUTINE bdy_dta_init  *** 
     
    433427      !!                 
    434428      !!---------------------------------------------------------------------- 
    435       !! 
    436       INTEGER     ::  ib_bdy, jfld, jstart, jend, ierror  ! local indices 
    437       INTEGER      ::   ios                               ! Local integer output status for namelist read 
    438       !! 
     429      INTEGER ::   ib_bdy, jfld, jstart, jend, ierror, ios     ! Local integers 
     430      ! 
    439431      CHARACTER(len=100)                     ::   cn_dir        ! Root directory for location of data files 
    440432      CHARACTER(len=100), DIMENSION(nb_bdy)  ::   cn_dir_array  ! Root directory for location of data files 
     
    469461      NAMELIST/nambdy_dta/ ln_full_vel 
    470462      !!--------------------------------------------------------------------------- 
    471  
    472       IF( nn_timing == 1 ) CALL timing_start('bdy_dta_init') 
    473  
     463      ! 
     464      IF( nn_timing == 1 )   CALL timing_start('bdy_dta_init') 
     465      ! 
    474466      IF(lwp) WRITE(numout,*) 
    475467      IF(lwp) WRITE(numout,*) 'bdy_dta_ini : initialization of data at the open boundaries' 
     
    486478#endif 
    487479                              ) 
    488          IF(nn_dta(ib_bdy) .gt. 1) nn_dta(ib_bdy) = 1 
     480         IF(nn_dta(ib_bdy) > 1) nn_dta(ib_bdy) = 1 
    489481      END DO 
    490482 
     
    494486      nb_bdy_fld(:) = 0 
    495487      DO ib_bdy = 1, nb_bdy          
    496          IF( cn_dyn2d(ib_bdy) /= 'none' .and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) ) THEN 
     488         IF( cn_dyn2d(ib_bdy) /= 'none' .and. ( nn_dyn2d_dta(ib_bdy) == 1 .or. nn_dyn2d_dta(ib_bdy) == 3 ) ) THEN 
    497489            nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 3 
    498490         ENDIF 
    499          IF( cn_dyn3d(ib_bdy) /= 'none' .and. nn_dyn3d_dta(ib_bdy) .eq. 1 ) THEN 
     491         IF( cn_dyn3d(ib_bdy) /= 'none' .and. nn_dyn3d_dta(ib_bdy) == 1 ) THEN 
    500492            nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 2 
    501493         ENDIF 
    502          IF( cn_tra(ib_bdy) /= 'none' .and. nn_tra_dta(ib_bdy) .eq. 1  ) THEN 
     494         IF( cn_tra(ib_bdy) /= 'none' .and. nn_tra_dta(ib_bdy) == 1  ) THEN 
    503495            nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 2 
    504496         ENDIF 
    505497#if ( defined key_lim2 || defined key_lim3 ) 
    506          IF( cn_ice_lim(ib_bdy) /= 'none' .and. nn_ice_lim_dta(ib_bdy) .eq. 1  ) THEN 
     498         IF( cn_ice_lim(ib_bdy) /= 'none' .and. nn_ice_lim_dta(ib_bdy) == 1  ) THEN 
    507499            nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 3 
    508500         ENDIF 
    509501#endif                
    510502         IF(lwp) WRITE(numout,*) 'Maximum number of files to open =',nb_bdy_fld(ib_bdy) 
    511       ENDDO             
     503      END DO             
    512504 
    513505      nb_bdy_fld_sum = SUM( nb_bdy_fld ) 
     
    535527      jfld = 0  
    536528      DO ib_bdy = 1, nb_bdy          
    537          IF( nn_dta(ib_bdy) .eq. 1 ) THEN 
     529         IF( nn_dta(ib_bdy) == 1 ) THEN 
    538530            READ  ( numnam_ref, nambdy_dta, IOSTAT = ios, ERR = 901) 
    539 901         IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in reference namelist', lwp ) 
     531901         IF( ios /= 0 )   CALL ctl_nam ( ios , 'nambdy_dta in reference namelist', lwp ) 
    540532 
    541533            READ  ( numnam_cfg, nambdy_dta, IOSTAT = ios, ERR = 902 ) 
    542 902         IF( ios /= 0 ) CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist', lwp ) 
    543             IF(lwm) WRITE ( numond, nambdy_dta ) 
     534902         IF( ios /= 0 )   CALL ctl_nam ( ios , 'nambdy_dta in configuration namelist', lwp ) 
     535            IF(lwm) WRITE( numond, nambdy_dta ) 
    544536 
    545537            cn_dir_array(ib_bdy) = cn_dir 
     
    553545            ! Only read in necessary fields for this set. 
    554546            ! Important that barotropic variables come first. 
    555             IF( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) THEN  
     547            IF( nn_dyn2d_dta(ib_bdy) == 1 .or. nn_dyn2d_dta(ib_bdy) == 3 ) THEN  
    556548 
    557549               IF( dta%ll_ssh ) THEN  
     
    592584            ! read 3D velocities if baroclinic velocities require OR if 
    593585            ! barotropic velocities required and ln_full_vel set to .true. 
    594             IF( nn_dyn3d_dta(ib_bdy) .eq. 1 .or. & 
    595            &  ( ln_full_vel_array(ib_bdy) .and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) ) ) THEN 
    596  
    597                IF( dta%ll_u3d .or. ( ln_full_vel_array(ib_bdy) .and. dta%ll_u2d ) ) THEN 
     586            IF( nn_dyn3d_dta(ib_bdy) == 1 .OR. & 
     587           &  ( ln_full_vel_array(ib_bdy) .AND. ( nn_dyn2d_dta(ib_bdy) == 1 .or. nn_dyn2d_dta(ib_bdy) == 3 ) ) ) THEN 
     588 
     589               IF( dta%ll_u3d .OR. ( ln_full_vel_array(ib_bdy) .and. dta%ll_u2d ) ) THEN 
    598590                  if(lwp) write(numout,*) '++++++ reading in u3d field' 
    599591                  jfld = jfld + 1 
     
    606598               ENDIF 
    607599 
    608                IF( dta%ll_v3d .or. ( ln_full_vel_array(ib_bdy) .and. dta%ll_v2d ) ) THEN 
     600               IF( dta%ll_v3d .OR. ( ln_full_vel_array(ib_bdy) .and. dta%ll_v2d ) ) THEN 
    609601                  if(lwp) write(numout,*) '++++++ reading in v3d field' 
    610602                  jfld = jfld + 1 
     
    620612 
    621613            ! temperature and salinity 
    622             IF( nn_tra_dta(ib_bdy) .eq. 1 ) THEN 
     614            IF( nn_tra_dta(ib_bdy) == 1 ) THEN 
    623615 
    624616               IF( dta%ll_tem ) THEN 
     
    646638#if defined key_lim2 
    647639            ! sea ice 
    648             IF( nn_ice_lim_dta(ib_bdy) .eq. 1 ) THEN 
     640            IF( nn_ice_lim_dta(ib_bdy) == 1 ) THEN 
    649641 
    650642               IF( dta%ll_frld ) THEN 
     
    678670#elif defined key_lim3 
    679671            ! sea ice 
    680             IF( nn_ice_lim_dta(ib_bdy) .eq. 1 ) THEN 
     672            IF( nn_ice_lim_dta(ib_bdy) == 1 ) THEN 
    681673               ! Test for types of ice input (lim2 or lim3)  
    682674               ! Build file name to find dimensions  
     
    733725            ! Recalculate field counts 
    734726            !------------------------- 
    735             IF( ib_bdy .eq. 1 ) THEN  
     727            IF( ib_bdy == 1 ) THEN  
    736728               nb_bdy_fld_sum = 0 
    737729               nb_bdy_fld(ib_bdy) = jfld 
     
    744736            dta%nread(1) = nb_bdy_fld(ib_bdy) 
    745737 
    746          ENDIF ! nn_dta .eq. 1 
     738         ENDIF ! nn_dta == 1 
    747739      ENDDO ! ib_bdy 
    748740 
     
    785777         endif 
    786778 
    787          IF ( nn_dyn2d_dta(ib_bdy) .eq. 0 .or. nn_dyn2d_dta(ib_bdy) .eq. 2 ) THEN 
     779         IF ( nn_dyn2d_dta(ib_bdy) == 0 .or. nn_dyn2d_dta(ib_bdy) == 2 ) THEN 
    788780            if(lwp) write(numout,*) '++++++ dta%ssh/u2d/u3d allocated space' 
    789781            IF( dta%ll_ssh ) ALLOCATE( dta%ssh(nblen(1)) ) 
     
    791783            IF( dta%ll_v2d ) ALLOCATE( dta%v2d(nblen(3)) ) 
    792784         ENDIF 
    793          IF ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) THEN 
     785         IF ( nn_dyn2d_dta(ib_bdy) == 1 .or. nn_dyn2d_dta(ib_bdy) == 3 ) THEN 
    794786            IF( dta%ll_ssh ) THEN 
    795787               if(lwp) write(numout,*) '++++++ dta%ssh pointing to fnow' 
     
    819811         ENDIF 
    820812 
    821          IF ( nn_dyn3d_dta(ib_bdy) .eq. 0 ) THEN 
     813         IF ( nn_dyn3d_dta(ib_bdy) == 0 ) THEN 
    822814            if(lwp) write(numout,*) '++++++ dta%u3d/v3d allocated space' 
    823815            IF( dta%ll_u3d ) ALLOCATE( dta_bdy(ib_bdy)%u3d(nblen(2),jpk) ) 
    824816            IF( dta%ll_v3d ) ALLOCATE( dta_bdy(ib_bdy)%v3d(nblen(3),jpk) ) 
    825817         ENDIF 
    826          IF ( nn_dyn3d_dta(ib_bdy) .eq. 1 .or. & 
    827            &  ( ln_full_vel_array(ib_bdy) .and. ( nn_dyn2d_dta(ib_bdy) .eq. 1 .or. nn_dyn2d_dta(ib_bdy) .eq. 3 ) ) ) THEN 
     818         IF ( nn_dyn3d_dta(ib_bdy) == 1 .or. & 
     819           &  ( ln_full_vel_array(ib_bdy) .and. ( nn_dyn2d_dta(ib_bdy) == 1 .or. nn_dyn2d_dta(ib_bdy) == 3 ) ) ) THEN 
    828820            IF ( dta%ll_u3d .or. ( ln_full_vel_array(ib_bdy) .and. dta%ll_u2d ) ) THEN 
    829821               if(lwp) write(numout,*) '++++++ dta%u3d pointing to fnow' 
     
    838830         ENDIF 
    839831 
    840          IF( nn_tra_dta(ib_bdy) .eq. 0 ) THEN 
     832         IF( nn_tra_dta(ib_bdy) == 0 ) THEN 
    841833            if(lwp) write(numout,*) '++++++ dta%tem/sal allocated space' 
    842834            IF( dta%ll_tem ) ALLOCATE( dta_bdy(ib_bdy)%tem(nblen(1),jpk) ) 
     
    857849#if defined key_lim2 
    858850         IF (cn_ice_lim(ib_bdy) /= 'none') THEN 
    859             IF( nn_ice_lim_dta(ib_bdy) .eq. 0 ) THEN 
     851            IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN 
    860852               ALLOCATE( dta_bdy(ib_bdy)%frld(nblen(1)) ) 
    861853               ALLOCATE( dta_bdy(ib_bdy)%hicif(nblen(1)) ) 
     
    872864#elif defined key_lim3 
    873865         IF (cn_ice_lim(ib_bdy) /= 'none') THEN 
    874             IF( nn_ice_lim_dta(ib_bdy) .eq. 0 ) THEN 
     866            IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN 
    875867               ALLOCATE( dta_bdy(ib_bdy)%a_i (nblen(1),jpl) ) 
    876868               ALLOCATE( dta_bdy(ib_bdy)%ht_i(nblen(1),jpl) ) 
     
    892884                  ALLOCATE( dta_bdy(ib_bdy)%ht_i(nblen(1),jpl) ) 
    893885                  ALLOCATE( dta_bdy(ib_bdy)%ht_s(nblen(1),jpl) ) 
    894                   dta_bdy(ib_bdy)%a_i (:,:) = 0.0 
    895                   dta_bdy(ib_bdy)%ht_i(:,:) = 0.0 
    896                   dta_bdy(ib_bdy)%ht_s(:,:) = 0.0 
    897                ENDIF 
    898  
    899             ENDIF 
    900          ENDIF 
    901 #endif 
    902  
    903       ENDDO ! ib_bdy  
    904  
     886                  dta_bdy(ib_bdy)%a_i (:,:) = 0._wp 
     887                  dta_bdy(ib_bdy)%ht_i(:,:) = 0._wp 
     888                  dta_bdy(ib_bdy)%ht_s(:,:) = 0._wp 
     889               ENDIF 
     890 
     891            ENDIF 
     892         ENDIF 
     893#endif 
     894         ! 
     895      END DO ! ib_bdy  
     896      ! 
    905897      IF( nn_timing == 1 ) CALL timing_stop('bdy_dta_init') 
    906  
    907       END SUBROUTINE bdy_dta_init 
     898      ! 
     899   END SUBROUTINE bdy_dta_init 
    908900 
    909901#else 
Note: See TracChangeset for help on using the changeset viewer.