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 5902 for branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90 – NEMO

Ignore:
Timestamp:
2015-11-20T10:58:48+01:00 (8 years ago)
Author:
jchanut
Message:

Free surface simplification #1620. Step 3: Step readibility, suppress cpp key_dynspg_xxx

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5847_MERCATOR9_solveur_simplification/NEMOGCM/NEMO/NST_SRC/agrif_opa_interp.F90

    r5868 r5902  
    2828   USE lib_mpp 
    2929   USE wrk_nemo 
    30    USE dynspg_oce 
    3130   USE zdf_oce 
    3231  
     
    7978      !! 
    8079      INTEGER :: ji,jj,jk, j1,j2, i1,i2 
    81       REAL(wp) :: timeref 
    82       REAL(wp) :: z2dt, znugdt 
    83       REAL(wp) :: zrhox, zrhoy 
    84       REAL(wp), POINTER, DIMENSION(:,:) :: spgv1, spgu1 
     80      REAL(wp), POINTER, DIMENSION(:,:) :: zub, zvb 
    8581      !!----------------------------------------------------------------------   
    8682 
    8783      IF( Agrif_Root() )   RETURN 
    8884 
    89       CALL wrk_alloc( jpi, jpj, spgv1, spgu1 ) 
     85      CALL wrk_alloc( jpi, jpj, zub, zvb ) 
    9086 
    9187      Agrif_SpecialValue=0. 
     
    9692 
    9793      Agrif_UseSpecialValue = .FALSE. 
    98  
    99       zrhox = Agrif_Rhox() 
    100       zrhoy = Agrif_Rhoy() 
    101  
    102       timeref = 1. 
    103       ! time step: leap-frog 
    104       z2dt = 2. * rdt 
    105       ! time step: Euler if restart from rest 
    106       IF( neuler == 0 .AND. kt == nit000 ) z2dt = rdt 
    107       ! coefficients 
    108       znugdt =  grav * z2dt     
    109  
     94  
    11095      ! prevent smoothing in ghost cells 
    11196      i1=1 
     
    120105 
    121106      IF((nbondi == -1).OR.(nbondi == 2)) THEN 
    122          spgu(2,:) = ua_b(2,:) 
    123  
    124          DO jk=1,jpkm1 
     107 
     108         ! Smoothing 
     109         ! --------- 
     110         IF ( .NOT.ln_dynspg_ts ) THEN ! Store transport 
     111            ua_b(2,:)=0._wp 
     112            DO jk=1,jpkm1 
     113               DO jj=1,jpj 
     114                  ua_b(2,jj) = ua_b(2,jj) + fse3u_a(2,jj,jk) * ua(2,jj,jk) 
     115               END DO 
     116            END DO 
     117            DO jj=1,jpj 
     118               ua_b(2,jj) = ua_b(2,jj) * hur_a(2,jj)             
     119            END DO 
     120         ENDIF 
     121 
     122         DO jk=1,jpkm1                 ! Smooth 
    125123            DO jj=j1,j2 
    126                ua(2,jj,jk) = 0.25*(ua(1,jj,jk)+2.*ua(2,jj,jk)+ua(3,jj,jk)) 
     124               ua(2,jj,jk) = 0.25_wp*(ua(1,jj,jk)+2._wp*ua(2,jj,jk)+ua(3,jj,jk)) 
    127125               ua(2,jj,jk) = ua(2,jj,jk) * umask(2,jj,jk) 
    128126            END DO 
    129127         END DO 
    130128 
    131          spgu1(2,:)=0. 
    132  
     129         zub(2,:)=0._wp                ! Correct transport 
    133130         DO jk=1,jpkm1 
    134131            DO jj=1,jpj 
    135                spgu1(2,jj)=spgu1(2,jj)+fse3u(2,jj,jk)*ua(2,jj,jk) 
    136             END DO 
    137          END DO 
    138  
     132               zub(2,jj) = zub(2,jj) + fse3u_a(2,jj,jk) * ua(2,jj,jk) 
     133            END DO 
     134         END DO 
    139135         DO jj=1,jpj 
    140             IF (umask(2,jj,1).NE.0.) THEN 
    141                spgu1(2,jj)=spgu1(2,jj)/hu(2,jj) 
    142             ENDIF 
    143          END DO 
    144  
    145          DO jk=1,jpkm1 
     136            zub(2,jj) = zub(2,jj) * hur_a(2,jj) 
     137         END DO 
     138 
     139         DO jk=1,jpkm1 
     140            DO jj=1,jpj 
     141               ua(2,jj,jk) = (ua(2,jj,jk)+ua_b(2,jj)-zub(2,jj))*umask(2,jj,jk) 
     142            END DO 
     143         END DO 
     144 
     145         ! Set tangential velocities to time splitting estimate 
     146         !----------------------------------------------------- 
     147         IF ( ln_dynspg_ts) THEN 
     148            zvb(2,:)=0._wp 
     149            DO jk=1,jpkm1 
     150               DO jj=1,jpj 
     151                  zvb(2,jj) = zvb(2,jj) + fse3v_a(2,jj,jk) * va(2,jj,jk) 
     152               END DO 
     153            END DO 
     154            DO jj=1,jpj 
     155               zvb(2,jj) = zvb(2,jj) * hvr_a(2,jj) 
     156            END DO 
     157            DO jk=1,jpkm1 
     158               DO jj=1,jpj 
     159                  va(2,jj,jk) = (va(2,jj,jk)+va_b(2,jj)-zvb(2,jj))*vmask(2,jj,jk) 
     160               END DO 
     161            END DO 
     162         ENDIF 
     163 
     164         ! Mask domain edges: 
     165         !------------------- 
     166         DO jk=1,jpkm1 
     167            DO jj=1,jpj 
     168               ua(1,jj,jk) = 0._wp 
     169               va(1,jj,jk) = 0._wp 
     170            END DO 
     171         END DO          
     172 
     173      ENDIF 
     174 
     175      IF((nbondi == 1).OR.(nbondi == 2)) THEN 
     176 
     177         ! Smoothing 
     178         ! --------- 
     179         IF ( .NOT.ln_dynspg_ts ) THEN ! Store transport 
     180            ua_b(nlci-2,:)=0._wp 
     181            DO jk=1,jpkm1 
     182               DO jj=1,jpj 
     183                  ua_b(nlci-2,jj) = ua_b(nlci-2,jj) + fse3u_a(nlci-2,jj,jk) * ua(nlci-2,jj,jk) 
     184               END DO 
     185            END DO 
     186            DO jj=1,jpj 
     187               ua_b(nlci-2,jj) = ua_b(nlci-2,jj) * hur_a(nlci-2,jj)             
     188            END DO 
     189         ENDIF 
     190 
     191         DO jk=1,jpkm1                 ! Smooth 
    146192            DO jj=j1,j2 
    147                ua(2,jj,jk) = (ua(2,jj,jk)+spgu(2,jj)-spgu1(2,jj))*umask(2,jj,jk) 
    148             END DO 
    149          END DO 
    150  
    151 #if defined key_dynspg_ts 
     193               ua(nlci-2,jj,jk) = 0.25_wp*(ua(nlci-3,jj,jk)+2._wp*ua(nlci-2,jj,jk)+ua(nlci-1,jj,jk)) 
     194               ua(nlci-2,jj,jk) = ua(nlci-2,jj,jk) * umask(nlci-2,jj,jk) 
     195            END DO 
     196         END DO 
     197 
     198         zub(nlci-2,:)=0._wp           ! Correct transport 
     199         DO jk=1,jpkm1 
     200            DO jj=1,jpj 
     201               zub(nlci-2,jj) = zub(nlci-2,jj) + fse3u_a(nlci-2,jj,jk) * ua(nlci-2,jj,jk) 
     202            END DO 
     203         END DO 
     204         DO jj=1,jpj 
     205            zub(nlci-2,jj) = zub(nlci-2,jj) * hur_a(nlci-2,jj) 
     206         END DO 
     207 
     208         DO jk=1,jpkm1 
     209            DO jj=1,jpj 
     210               ua(nlci-2,jj,jk) = (ua(nlci-2,jj,jk)+ua_b(nlci-2,jj)-zub(nlci-2,jj))*umask(nlci-2,jj,jk) 
     211            END DO 
     212         END DO 
     213 
    152214         ! Set tangential velocities to time splitting estimate 
    153          spgv1(2,:)=0. 
    154          DO jk=1,jpkm1 
     215         !----------------------------------------------------- 
     216         IF ( ln_dynspg_ts) THEN 
     217            zvb(nlci-1,:)=0._wp 
     218            DO jk=1,jpkm1 
     219               DO jj=1,jpj 
     220                  zvb(nlci-1,jj) = zvb(nlci-1,jj) + fse3v_a(nlci-1,jj,jk) * va(nlci-1,jj,jk) 
     221               END DO 
     222            END DO 
    155223            DO jj=1,jpj 
    156                spgv1(2,jj)=spgv1(2,jj)+fse3v_a(2,jj,jk)*va(2,jj,jk) 
    157             END DO 
    158          END DO 
    159          DO jj=1,jpj 
    160             spgv1(2,jj)=spgv1(2,jj)*hvr_a(2,jj) 
    161          END DO 
     224               zvb(nlci-1,jj) = zvb(nlci-1,jj) * hvr_a(nlci-1,jj) 
     225            END DO 
     226            DO jk=1,jpkm1 
     227               DO jj=1,jpj 
     228                  va(nlci-1,jj,jk) = (va(nlci-1,jj,jk)+va_b(nlci-1,jj)-zvb(nlci-1,jj))*vmask(nlci-1,jj,jk) 
     229               END DO 
     230            END DO 
     231         ENDIF 
     232 
     233         ! Mask domain edges: 
     234         !------------------- 
    162235         DO jk=1,jpkm1 
    163236            DO jj=1,jpj 
    164                va(2,jj,jk) = (va(2,jj,jk)+va_b(2,jj)-spgv1(2,jj))*vmask(2,jj,jk) 
    165             END DO 
    166          END DO 
    167 #endif 
    168  
    169       ENDIF 
    170  
    171       IF((nbondi == 1).OR.(nbondi == 2)) THEN 
    172          spgu(nlci-2,:) = ua_b(nlci-2,:) 
    173  
    174          DO jk=1,jpkm1 
    175             DO jj=j1,j2 
    176                ua(nlci-2,jj,jk) = 0.25*(ua(nlci-3,jj,jk)+2.*ua(nlci-2,jj,jk)+ua(nlci-1,jj,jk)) 
    177  
    178                ua(nlci-2,jj,jk) = ua(nlci-2,jj,jk) * umask(nlci-2,jj,jk) 
    179  
    180             END DO 
    181          END DO 
    182          spgu1(nlci-2,:)=0. 
    183          DO jk=1,jpkm1 
    184             DO jj=1,jpj 
    185                spgu1(nlci-2,jj)=spgu1(nlci-2,jj)+fse3u(nlci-2,jj,jk)*ua(nlci-2,jj,jk)*umask(nlci-2,jj,jk) 
    186             END DO 
    187          END DO 
    188          DO jj=1,jpj 
    189             IF (umask(nlci-2,jj,1).NE.0.) THEN 
    190                spgu1(nlci-2,jj)=spgu1(nlci-2,jj)/hu(nlci-2,jj) 
    191             ENDIF 
    192          END DO 
    193          DO jk=1,jpkm1 
    194             DO jj=j1,j2 
    195                ua(nlci-2,jj,jk) = (ua(nlci-2,jj,jk)+spgu(nlci-2,jj)-spgu1(nlci-2,jj))*umask(nlci-2,jj,jk) 
    196             END DO 
    197          END DO 
    198  
    199 #if defined key_dynspg_ts 
     237               ua(nlci-1,jj,jk) = 0._wp 
     238               va(nlci  ,jj,jk) = 0._wp 
     239            END DO 
     240         END DO  
     241 
     242      ENDIF 
     243 
     244      IF((nbondj == -1).OR.(nbondj == 2)) THEN 
     245 
     246         ! Smoothing 
     247         ! --------- 
     248         IF ( .NOT.ln_dynspg_ts ) THEN ! Store transport 
     249            va_b(:,2)=0._wp 
     250            DO jk=1,jpkm1 
     251               DO ji=1,jpi 
     252                  va_b(ji,2) = va_b(ji,2) + fse3v_a(ji,2,jk) * va(ji,2,jk) 
     253               END DO 
     254            END DO 
     255            DO ji=1,jpi 
     256               va_b(ji,2) = va_b(ji,2) * hvr_a(ji,2)             
     257            END DO 
     258         ENDIF 
     259 
     260         DO jk=1,jpkm1                 ! Smooth 
     261            DO ji=i1,i2 
     262               va(ji,2,jk)=0.25_wp*(va(ji,1,jk)+2._wp*va(ji,2,jk)+va(ji,3,jk)) 
     263               va(ji,2,jk)=va(ji,2,jk)*vmask(ji,2,jk) 
     264            END DO 
     265         END DO 
     266 
     267         zvb(:,2)=0._wp                ! Correct transport 
     268         DO jk=1,jpkm1 
     269            DO ji=1,jpi 
     270               zvb(ji,2) = zvb(ji,2) + fse3v_a(ji,2,jk) * va(ji,2,jk) * vmask(ji,2,jk) 
     271            END DO 
     272         END DO 
     273         DO ji=1,jpi 
     274            zvb(ji,2) = zvb(ji,2) * hvr_a(ji,2) 
     275         END DO 
     276         DO jk=1,jpkm1 
     277            DO ji=1,jpi 
     278               va(ji,2,jk) = (va(ji,2,jk)+va_b(ji,2)-zvb(ji,2))*vmask(ji,2,jk) 
     279            END DO 
     280         END DO 
     281 
    200282         ! Set tangential velocities to time splitting estimate 
    201          spgv1(nlci-1,:)=0._wp 
    202          DO jk=1,jpkm1 
    203             DO jj=1,jpj 
    204                spgv1(nlci-1,jj)=spgv1(nlci-1,jj)+fse3v_a(nlci-1,jj,jk)*va(nlci-1,jj,jk)*vmask(nlci-1,jj,jk) 
    205             END DO 
    206          END DO 
    207  
    208          DO jj=1,jpj 
    209             spgv1(nlci-1,jj)=spgv1(nlci-1,jj)*hvr_a(nlci-1,jj) 
    210          END DO 
    211  
    212          DO jk=1,jpkm1 
    213             DO jj=1,jpj 
    214                va(nlci-1,jj,jk) = (va(nlci-1,jj,jk)+va_b(nlci-1,jj)-spgv1(nlci-1,jj))*vmask(nlci-1,jj,jk) 
    215             END DO 
    216          END DO 
    217 #endif 
    218  
    219       ENDIF 
    220  
    221       IF((nbondj == -1).OR.(nbondj == 2)) THEN 
    222          spgv(:,2)=va_b(:,2) 
    223  
    224          DO jk=1,jpkm1 
     283         !----------------------------------------------------- 
     284         IF ( ln_dynspg_ts ) THEN 
     285            zub(:,2)=0._wp 
     286            DO jk=1,jpkm1 
     287               DO ji=1,jpi 
     288                  zub(ji,2) = zub(ji,2) + fse3u_a(ji,2,jk) * ua(ji,2,jk) * umask(ji,2,jk) 
     289               END DO 
     290            END DO 
     291            DO ji=1,jpi 
     292               zub(ji,2) = zub(ji,2) * hur_a(ji,2) 
     293            END DO 
     294 
     295            DO jk=1,jpkm1 
     296               DO ji=1,jpi 
     297                  ua(ji,2,jk) = (ua(ji,2,jk)+ua_b(ji,2)-zub(ji,2))*umask(ji,2,jk) 
     298               END DO 
     299            END DO 
     300         ENDIF 
     301 
     302         ! Mask domain edges: 
     303         !------------------- 
     304         DO jk=1,jpkm1 
     305            DO ji=1,jpi 
     306               ua(ji,1,jk) = 0._wp 
     307               va(ji,1,jk) = 0._wp 
     308            END DO 
     309         END DO  
     310 
     311      ENDIF 
     312 
     313      IF((nbondj == 1).OR.(nbondj == 2)) THEN 
     314         ! Smoothing 
     315         ! --------- 
     316         IF ( .NOT.ln_dynspg_ts ) THEN ! Store transport 
     317            va_b(:,nlcj-2)=0._wp 
     318            DO jk=1,jpkm1 
     319               DO ji=1,jpi 
     320                  va_b(ji,nlcj-2) = va_b(ji,nlcj-2) + fse3v_a(ji,nlcj-2,jk) * va(ji,nlcj-2,jk) 
     321               END DO 
     322            END DO 
     323            DO ji=1,jpi 
     324               va_b(ji,nlcj-2) = va_b(ji,nlcj-2) * hvr_a(ji,nlcj-2)             
     325            END DO 
     326         ENDIF 
     327 
     328         DO jk=1,jpkm1                 ! Smooth 
    225329            DO ji=i1,i2 
    226                va(ji,2,jk)=0.25*(va(ji,1,jk)+2.*va(ji,2,jk)+va(ji,3,jk)) 
    227                va(ji,2,jk)=va(ji,2,jk)*vmask(ji,2,jk) 
    228             END DO 
    229          END DO 
    230  
    231          spgv1(:,2)=0. 
    232  
     330               va(ji,nlcj-2,jk)=0.25_wp*(va(ji,nlcj-3,jk)+2._wp*va(ji,nlcj-2,jk)+va(ji,nlcj-1,jk)) 
     331               va(ji,nlcj-2,jk)=va(ji,nlcj-2,jk)*vmask(ji,nlcj-2,jk) 
     332            END DO 
     333         END DO 
     334 
     335         zvb(:,nlcj-2)=0._wp           ! Correct transport 
    233336         DO jk=1,jpkm1 
    234337            DO ji=1,jpi 
    235                spgv1(ji,2)=spgv1(ji,2)+fse3v(ji,2,jk)*va(ji,2,jk)*vmask(ji,2,jk) 
    236             END DO 
    237          END DO 
    238  
     338               zvb(ji,nlcj-2) = zvb(ji,nlcj-2) + fse3v_a(ji,nlcj-2,jk) * va(ji,nlcj-2,jk) * vmask(ji,nlcj-2,jk) 
     339            END DO 
     340         END DO 
    239341         DO ji=1,jpi 
    240             IF (vmask(ji,2,1).NE.0.) THEN 
    241                spgv1(ji,2)=spgv1(ji,2)/hv(ji,2) 
    242             ENDIF 
    243          END DO 
    244  
     342            zvb(ji,nlcj-2) = zvb(ji,nlcj-2) * hvr_a(ji,nlcj-2) 
     343         END DO 
    245344         DO jk=1,jpkm1 
    246345            DO ji=1,jpi 
    247                va(ji,2,jk) = (va(ji,2,jk)+spgv(ji,2)-spgv1(ji,2))*vmask(ji,2,jk) 
    248             END DO 
    249          END DO 
    250  
    251 #if defined key_dynspg_ts 
     346               va(ji,nlcj-2,jk) = (va(ji,nlcj-2,jk)+va_b(ji,nlcj-2)-zvb(ji,nlcj-2))*vmask(ji,nlcj-2,jk) 
     347            END DO 
     348         END DO 
     349 
    252350         ! Set tangential velocities to time splitting estimate 
    253          spgu1(:,2)=0._wp 
    254          DO jk=1,jpkm1 
     351         !----------------------------------------------------- 
     352         IF ( ln_dynspg_ts ) THEN 
     353            zub(:,nlcj-1)=0._wp 
     354            DO jk=1,jpkm1 
     355               DO ji=1,jpi 
     356                  zub(ji,nlcj-1) = zub(ji,nlcj-1) + fse3u_a(ji,nlcj-1,jk) * ua(ji,nlcj-1,jk) * umask(ji,nlcj-1,jk) 
     357               END DO 
     358            END DO 
    255359            DO ji=1,jpi 
    256                spgu1(ji,2)=spgu1(ji,2)+fse3u_a(ji,2,jk)*ua(ji,2,jk)*umask(ji,2,jk) 
    257             END DO 
    258          END DO 
    259  
    260          DO ji=1,jpi 
    261             spgu1(ji,2)=spgu1(ji,2)*hur_a(ji,2) 
    262          END DO 
    263  
     360               zub(ji,nlcj-1) = zub(ji,nlcj-1) * hur_a(ji,nlcj-1) 
     361            END DO 
     362 
     363            DO jk=1,jpkm1 
     364               DO ji=1,jpi 
     365                  ua(ji,nlcj-1,jk) = (ua(ji,nlcj-1,jk)+ua_b(ji,nlcj-1)-zub(ji,nlcj-1))*umask(ji,nlcj-1,jk) 
     366               END DO 
     367            END DO 
     368         ENDIF 
     369 
     370         ! Mask domain edges: 
     371         !------------------- 
    264372         DO jk=1,jpkm1 
    265373            DO ji=1,jpi 
    266                ua(ji,2,jk) = (ua(ji,2,jk)+ua_b(ji,2)-spgu1(ji,2))*umask(ji,2,jk) 
    267             END DO 
    268          END DO 
    269 #endif 
    270       ENDIF 
    271  
    272       IF((nbondj == 1).OR.(nbondj == 2)) THEN 
    273  
    274          spgv(:,nlcj-2)=va_b(:,nlcj-2) 
    275  
    276          DO jk=1,jpkm1 
    277             DO ji=i1,i2 
    278                va(ji,nlcj-2,jk)=0.25*(va(ji,nlcj-3,jk)+2.*va(ji,nlcj-2,jk)+va(ji,nlcj-1,jk)) 
    279                va(ji,nlcj-2,jk) = va(ji,nlcj-2,jk) * vmask(ji,nlcj-2,jk) 
    280             END DO 
    281          END DO 
    282  
    283          spgv1(:,nlcj-2)=0. 
    284  
    285          DO jk=1,jpkm1 
    286             DO ji=1,jpi 
    287                spgv1(ji,nlcj-2)=spgv1(ji,nlcj-2)+fse3v(ji,nlcj-2,jk)*va(ji,nlcj-2,jk) 
    288             END DO 
    289          END DO 
    290  
    291          DO ji=1,jpi 
    292             IF (vmask(ji,nlcj-2,1).NE.0.) THEN 
    293                spgv1(ji,nlcj-2)=spgv1(ji,nlcj-2)/hv(ji,nlcj-2) 
    294             ENDIF 
    295          END DO 
    296  
    297          DO jk=1,jpkm1 
    298             DO ji=1,jpi 
    299                va(ji,nlcj-2,jk) = (va(ji,nlcj-2,jk)+spgv(ji,nlcj-2)-spgv1(ji,nlcj-2))*vmask(ji,nlcj-2,jk) 
    300             END DO 
    301          END DO 
    302  
    303 #if defined key_dynspg_ts 
    304          ! Set tangential velocities to time splitting estimate 
    305          spgu1(:,nlcj-1)=0._wp 
    306          DO jk=1,jpkm1 
    307             DO ji=1,jpi 
    308                spgu1(ji,nlcj-1)=spgu1(ji,nlcj-1)+fse3u_a(ji,nlcj-1,jk)*ua(ji,nlcj-1,jk) 
    309             END DO 
    310          END DO 
    311  
    312          DO ji=1,jpi 
    313             spgu1(ji,nlcj-1)=spgu1(ji,nlcj-1)*hur_a(ji,nlcj-1) 
    314          END DO 
    315  
    316          DO jk=1,jpkm1 
    317             DO ji=1,jpi 
    318                ua(ji,nlcj-1,jk) = (ua(ji,nlcj-1,jk)+ua_b(ji,nlcj-1)-spgu1(ji,nlcj-1))*umask(ji,nlcj-1,jk) 
    319             END DO 
    320          END DO 
    321 #endif 
    322  
    323       ENDIF 
    324       ! 
    325       CALL wrk_dealloc( jpi, jpj, spgv1, spgu1 ) 
     374               ua(ji,nlcj  ,jk) = 0._wp 
     375               va(ji,nlcj-1,jk) = 0._wp 
     376            END DO 
     377         END DO  
     378 
     379      ENDIF 
     380      ! 
     381      CALL wrk_dealloc( jpi, jpj, zub, zvb ) 
    326382      ! 
    327383   END SUBROUTINE Agrif_dyn 
     
    594650                  END DO 
    595651               END DO 
     652               tsa(nlci,j1:j2,k1:k2,jn) = 0._wp 
    596653            ENDDO 
    597654         ENDIF 
     
    613670                  END DO 
    614671               END DO 
     672               tsa(i1:i2,nlcj,k1:k2,jn) = 0._wp 
    615673            ENDDO 
    616674         ENDIF 
     
    631689                  END DO 
    632690               END DO 
     691               tsa(1,j1:j2,k1:k2,jn) = 0._wp 
    633692            END DO 
    634693         ENDIF 
     
    649708                  END DO 
    650709               END DO 
     710               tsa(i1:i2,1,k1:k2,jn) = 0._wp 
    651711            ENDDO 
    652712         ENDIF 
Note: See TracChangeset for help on using the changeset viewer.