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

Changeset 12638


Ignore:
Timestamp:
2020-04-01T12:52:02+02:00 (4 years ago)
Author:
smasson
Message:

trunk: avoid to use unassociated pointers in bdydta, see #2428

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/BDY/bdydta.F90

    r12547 r12638  
    116116                  END DO 
    117117               ENDIF 
    118                IF( dta_bdy(jbdy)%lneed_dyn2d) THEN  
     118               IF( dta_bdy(jbdy)%lneed_dyn2d .AND. ASSOCIATED(dta_bdy(jbdy)%u2d) ) THEN   ! no SIZE with a unassociated pointer 
    119119                  igrd = 2 
    120120                  DO ib = 1, SIZE(dta_bdy(jbdy)%u2d)   ! u2d is used only on the rim except if ln_full_vel = T, see bdy_dta_init 
     
    228228         ! tidal harmonic forcing ONLY: initialise arrays 
    229229         IF( nn_dyn2d_dta(jbdy) == 2 ) THEN   ! we did not read ssh, u/v2d  
    230             IF( dta_alias%lneed_ssh   ) dta_alias%ssh(:) = 0._wp 
    231             IF( dta_alias%lneed_dyn2d ) dta_alias%u2d(:) = 0._wp 
    232             IF( dta_alias%lneed_dyn2d ) dta_alias%v2d(:) = 0._wp 
     230            IF( dta_alias%lneed_ssh   .AND. ASSOCIATED(dta_alias%ssh) ) dta_alias%ssh(:) = 0._wp 
     231            IF( dta_alias%lneed_dyn2d .AND. ASSOCIATED(dta_alias%u2d) ) dta_alias%u2d(:) = 0._wp 
     232            IF( dta_alias%lneed_dyn2d .AND. ASSOCIATED(dta_alias%v2d) ) dta_alias%v2d(:) = 0._wp 
    233233         ENDIF 
    234234 
     
    237237            ! 
    238238            igrd = 2                       ! zonal velocity 
    239             dta_alias%u2d(:) = 0._wp       ! compute barotrope zonal velocity and put it in u2d 
    240239            DO ib = 1, idx_bdy(jbdy)%nblen(igrd) 
    241240               ii   = idx_bdy(jbdy)%nbi(ib,igrd) 
    242241               ij   = idx_bdy(jbdy)%nbj(ib,igrd) 
     242               dta_alias%u2d(ib) = 0._wp   ! compute barotrope zonal velocity and put it in u2d 
    243243               DO ik = 1, jpkm1 
    244244                  dta_alias%u2d(ib) = dta_alias%u2d(ib) + e3u(ii,ij,ik,Kmm) * umask(ii,ij,ik) * dta_alias%u3d(ib,ik) 
     
    250250            END DO 
    251251            igrd = 3                       ! meridional velocity 
    252             dta_alias%v2d(:) = 0._wp       ! compute barotrope meridional velocity and put it in v2d 
    253252            DO ib = 1, idx_bdy(jbdy)%nblen(igrd) 
    254253               ii   = idx_bdy(jbdy)%nbi(ib,igrd) 
    255254               ij   = idx_bdy(jbdy)%nbj(ib,igrd) 
     255               dta_alias%v2d(ib) = 0._wp   ! compute barotrope meridional velocity and put it in v2d 
    256256               DO ik = 1, jpkm1 
    257257                  dta_alias%v2d(ib) = dta_alias%v2d(ib) + e3v(ii,ij,ik,Kmm) * vmask(ii,ij,ik) * dta_alias%v3d(ib,ik) 
     
    275275 
    276276#if defined key_si3 
    277          IF( dta_alias%lneed_ice ) THEN 
     277         IF( dta_alias%lneed_ice .AND. idx_bdy(jbdy)%nblen(1) > 0 ) THEN 
    278278            ! fill temperature and salinity arrays 
    279279            IF( TRIM(bf_alias(jp_bdyt_i)%clrootname) == 'NOT USED' )   bf_alias(jp_bdyt_i)%fnow(:,1,:) = rice_tem (jbdy) 
Note: See TracChangeset for help on using the changeset viewer.