Changeset 11053 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/NST/agrif_top_interp.F90
- Timestamp:
- 2019-05-24T12:53:06+02:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps_rewrite_time_filterswap/src/NST/agrif_top_interp.F90
r10989 r11053 73 73 DO jj=j1,j2 74 74 DO ji=i1,i2 75 ptab(ji,jj,jk,jn) = tr(ji,jj,jk,jn,Kmm )75 ptab(ji,jj,jk,jn) = tr(ji,jj,jk,jn,Kmm_a) 76 76 END DO 77 77 END DO … … 83 83 DO jj=j1,j2 84 84 DO ji=i1,i2 85 ptab(ji,jj,jk,jptra+1) = tmask(ji,jj,jk) * e3t(ji,jj,jk,Kmm )85 ptab(ji,jj,jk,jptra+1) = tmask(ji,jj,jk) * e3t(ji,jj,jk,Kmm_a) 86 86 END DO 87 87 END DO … … 113 113 IF (tmask(iref,jref,jk) == 0) EXIT 114 114 N_out = N_out + 1 115 h_out(jk) = e3t(iref,jref,jk,Kmm )115 h_out(jk) = e3t(iref,jref,jk,Kmm_a) 116 116 ENDDO 117 117 IF (N_in > 0) THEN … … 127 127 ! 128 128 DO jn=1, jptra 129 tr(i1:i2,j1:j2,1:jpk,jn,Krhs )=ptab_child(i1:i2,j1:j2,1:jpk,jn)*tmask(i1:i2,j1:j2,1:jpk)129 tr(i1:i2,j1:j2,1:jpk,jn,Krhs_a)=ptab_child(i1:i2,j1:j2,1:jpk,jn)*tmask(i1:i2,j1:j2,1:jpk) 130 130 END DO 131 131 … … 151 151 ibdy = nlci-nbghostcells 152 152 DO jn = 1, jptra 153 tr(ibdy+1,jmin:jmax,1:jpkm1,jn,Krhs ) = z1 * ptab_child(ibdy+1,jmin:jmax,1:jpkm1,jn) + z2 * ptab_child(ibdy,jmin:jmax,1:jpkm1,jn)153 tr(ibdy+1,jmin:jmax,1:jpkm1,jn,Krhs_a) = z1 * ptab_child(ibdy+1,jmin:jmax,1:jpkm1,jn) + z2 * ptab_child(ibdy,jmin:jmax,1:jpkm1,jn) 154 154 DO jk = 1, jpkm1 155 155 DO jj = jmin,jmax 156 156 IF( umask(ibdy-1,jj,jk) == 0._wp ) THEN 157 tr(ibdy,jj,jk,jn,Krhs ) = tr(ibdy+1,jj,jk,jn,Krhs) * tmask(ibdy,jj,jk)158 ELSE 159 tr(ibdy,jj,jk,jn,Krhs )=(z4*tr(ibdy+1,jj,jk,jn,Krhs)+z3*tr(ibdy-1,jj,jk,jn,Krhs))*tmask(ibdy,jj,jk)160 IF( uu(ibdy-1,jj,jk,Kmm ) > 0._wp ) THEN161 tr(ibdy,jj,jk,jn,Krhs )=( z6*tr(ibdy-1,jj,jk,jn,Krhs)+z5*tr(ibdy+1,jj,jk,jn,Krhs) &162 + z7*tr(ibdy-2,jj,jk,jn,Krhs ) ) * tmask(ibdy,jj,jk)163 ENDIF 164 ENDIF 165 END DO 166 END DO 167 ! Restore ghost points: 168 tr(ibdy+1,jmin:jmax,1:jpkm1,jn,Krhs ) = ptab_child(ibdy+1,jmin:jmax,1:jpkm1,jn) * tmask(ibdy+1,jmin:jmax,1:jpkm1)157 tr(ibdy,jj,jk,jn,Krhs_a) = tr(ibdy+1,jj,jk,jn,Krhs_a) * tmask(ibdy,jj,jk) 158 ELSE 159 tr(ibdy,jj,jk,jn,Krhs_a)=(z4*tr(ibdy+1,jj,jk,jn,Krhs_a)+z3*tr(ibdy-1,jj,jk,jn,Krhs_a))*tmask(ibdy,jj,jk) 160 IF( uu(ibdy-1,jj,jk,Kmm_a) > 0._wp ) THEN 161 tr(ibdy,jj,jk,jn,Krhs_a)=( z6*tr(ibdy-1,jj,jk,jn,Krhs_a)+z5*tr(ibdy+1,jj,jk,jn,Krhs_a) & 162 + z7*tr(ibdy-2,jj,jk,jn,Krhs_a) ) * tmask(ibdy,jj,jk) 163 ENDIF 164 ENDIF 165 END DO 166 END DO 167 ! Restore ghost points: 168 tr(ibdy+1,jmin:jmax,1:jpkm1,jn,Krhs_a) = ptab_child(ibdy+1,jmin:jmax,1:jpkm1,jn) * tmask(ibdy+1,jmin:jmax,1:jpkm1) 169 169 END DO 170 170 ENDIF … … 180 180 jbdy = nlcj-nbghostcells 181 181 DO jn = 1, jptra 182 tr(imin:imax,jbdy+1,1:jpkm1,jn,Krhs ) = z1 * ptab_child(imin:imax,jbdy+1,1:jpkm1,jn) + z2 * ptab_child(imin:imax,jbdy,1:jpkm1,jn)182 tr(imin:imax,jbdy+1,1:jpkm1,jn,Krhs_a) = z1 * ptab_child(imin:imax,jbdy+1,1:jpkm1,jn) + z2 * ptab_child(imin:imax,jbdy,1:jpkm1,jn) 183 183 DO jk = 1, jpkm1 184 184 DO ji = imin,imax 185 185 IF( vmask(ji,jbdy-1,jk) == 0._wp ) THEN 186 tr(ji,jbdy,jk,jn,Krhs ) = tr(ji,jbdy+1,jk,jn,Krhs) * tmask(ji,jbdy,jk)187 ELSE 188 tr(ji,jbdy,jk,jn,Krhs )=(z4*tr(ji,jbdy+1,jk,jn,Krhs)+z3*tr(ji,jbdy-1,jk,jn,Krhs))*tmask(ji,jbdy,jk)189 IF (vv(ji,jbdy-1,jk,Kmm ) > 0._wp ) THEN190 tr(ji,jbdy,jk,jn,Krhs )=( z6*tr(ji,jbdy-1,jk,jn,Krhs)+z5*tr(ji,jbdy+1,jk,jn,Krhs) &191 + z7*tr(ji,jbdy-2,jk,jn,Krhs ) ) * tmask(ji,jbdy,jk)192 ENDIF 193 ENDIF 194 END DO 195 END DO 196 ! Restore ghost points: 197 tr(imin:imax,jbdy+1,1:jpkm1,jn,Krhs ) = ptab_child(imin:imax,jbdy+1,1:jpkm1,jn) * tmask(imin:imax,jbdy+1,1:jpkm1)186 tr(ji,jbdy,jk,jn,Krhs_a) = tr(ji,jbdy+1,jk,jn,Krhs_a) * tmask(ji,jbdy,jk) 187 ELSE 188 tr(ji,jbdy,jk,jn,Krhs_a)=(z4*tr(ji,jbdy+1,jk,jn,Krhs_a)+z3*tr(ji,jbdy-1,jk,jn,Krhs_a))*tmask(ji,jbdy,jk) 189 IF (vv(ji,jbdy-1,jk,Kmm_a) > 0._wp ) THEN 190 tr(ji,jbdy,jk,jn,Krhs_a)=( z6*tr(ji,jbdy-1,jk,jn,Krhs_a)+z5*tr(ji,jbdy+1,jk,jn,Krhs_a) & 191 + z7*tr(ji,jbdy-2,jk,jn,Krhs_a) ) * tmask(ji,jbdy,jk) 192 ENDIF 193 ENDIF 194 END DO 195 END DO 196 ! Restore ghost points: 197 tr(imin:imax,jbdy+1,1:jpkm1,jn,Krhs_a) = ptab_child(imin:imax,jbdy+1,1:jpkm1,jn) * tmask(imin:imax,jbdy+1,1:jpkm1) 198 198 END DO 199 199 ENDIF … … 209 209 ibdy = 1+nbghostcells 210 210 DO jn = 1, jptra 211 tr(ibdy-1,jmin:jmax,1:jpkm1,jn,Krhs ) = z1 * ptab_child(ibdy-1,jmin:jmax,1:jpkm1,jn) + z2 * ptab_child(ibdy,jmin:jmax,1:jpkm1,jn)211 tr(ibdy-1,jmin:jmax,1:jpkm1,jn,Krhs_a) = z1 * ptab_child(ibdy-1,jmin:jmax,1:jpkm1,jn) + z2 * ptab_child(ibdy,jmin:jmax,1:jpkm1,jn) 212 212 DO jk = 1, jpkm1 213 213 DO jj = jmin,jmax 214 214 IF( umask(ibdy,jj,jk) == 0._wp ) THEN 215 tr(ibdy,jj,jk,jn,Krhs ) = tr(ibdy-1,jj,jk,jn,Krhs) * tmask(ibdy,jj,jk)216 ELSE 217 tr(ibdy,jj,jk,jn,Krhs )=(z4*tr(ibdy-1,jj,jk,jn,Krhs)+z3*tr(ibdy+1,jj,jk,jn,Krhs))*tmask(ibdy,jj,jk)218 IF( uu(ibdy,jj,jk,Kmm ) < 0._wp ) THEN219 tr(ibdy,jj,jk,jn,Krhs )=( z6*tr(ibdy+1,jj,jk,jn,Krhs)+z5*tr(ibdy-1,jj,jk,jn,Krhs) &220 + z7*tr(ibdy+2,jj,jk,jn,Krhs ) ) * tmask(ibdy,jj,jk)221 ENDIF 222 ENDIF 223 END DO 224 END DO 225 ! Restore ghost points: 226 tr(ibdy-1,jmin:jmax,1:jpkm1,jn,Krhs ) = ptab_child(ibdy-1,jmin:jmax,1:jpkm1,jn) * tmask(ibdy-1,jmin:jmax,1:jpkm1)215 tr(ibdy,jj,jk,jn,Krhs_a) = tr(ibdy-1,jj,jk,jn,Krhs_a) * tmask(ibdy,jj,jk) 216 ELSE 217 tr(ibdy,jj,jk,jn,Krhs_a)=(z4*tr(ibdy-1,jj,jk,jn,Krhs_a)+z3*tr(ibdy+1,jj,jk,jn,Krhs_a))*tmask(ibdy,jj,jk) 218 IF( uu(ibdy,jj,jk,Kmm_a) < 0._wp ) THEN 219 tr(ibdy,jj,jk,jn,Krhs_a)=( z6*tr(ibdy+1,jj,jk,jn,Krhs_a)+z5*tr(ibdy-1,jj,jk,jn,Krhs_a) & 220 + z7*tr(ibdy+2,jj,jk,jn,Krhs_a) ) * tmask(ibdy,jj,jk) 221 ENDIF 222 ENDIF 223 END DO 224 END DO 225 ! Restore ghost points: 226 tr(ibdy-1,jmin:jmax,1:jpkm1,jn,Krhs_a) = ptab_child(ibdy-1,jmin:jmax,1:jpkm1,jn) * tmask(ibdy-1,jmin:jmax,1:jpkm1) 227 227 END DO 228 228 ENDIF … … 238 238 jbdy=1+nbghostcells 239 239 DO jn = 1, jptra 240 tr(imin:imax,jbdy-1,1:jpkm1,jn,Krhs ) = z1 * ptab_child(imin:imax,jbdy-1,1:jpkm1,jn) + z2 * ptab_child(imin:imax,jbdy,1:jpkm1,jn)240 tr(imin:imax,jbdy-1,1:jpkm1,jn,Krhs_a) = z1 * ptab_child(imin:imax,jbdy-1,1:jpkm1,jn) + z2 * ptab_child(imin:imax,jbdy,1:jpkm1,jn) 241 241 DO jk = 1, jpkm1 242 242 DO ji = imin,imax 243 243 IF( vmask(ji,jbdy,jk) == 0._wp ) THEN 244 tr(ji,jbdy,jk,jn,Krhs )=tr(ji,jbdy-1,jk,jn,Krhs) * tmask(ji,jbdy,jk)245 ELSE 246 tr(ji,jbdy,jk,jn,Krhs )=(z4*tr(ji,jbdy-1,jk,jn,Krhs)+z3*tr(ji,jbdy+1,jk,jn,Krhs))*tmask(ji,jbdy,jk)247 IF( vv(ji,jbdy,jk,Kmm ) < 0._wp ) THEN248 tr(ji,jbdy,jk,jn,Krhs )=( z6*tr(ji,jbdy+1,jk,jn,Krhs)+z5*tr(ji,jbdy-1,jk,jn,Krhs) &249 + z7*tr(ji,jbdy+2,jk,jn,Krhs ) ) * tmask(ji,jbdy,jk)250 ENDIF 251 ENDIF 252 END DO 253 END DO 254 ! Restore ghost points: 255 tr(imin:imax,jbdy-1,1:jpkm1,jn,Krhs ) = ptab_child(imin:imax,jbdy-1,1:jpkm1,jn) * tmask(imin:imax,jbdy-1,1:jpkm1)244 tr(ji,jbdy,jk,jn,Krhs_a)=tr(ji,jbdy-1,jk,jn,Krhs_a) * tmask(ji,jbdy,jk) 245 ELSE 246 tr(ji,jbdy,jk,jn,Krhs_a)=(z4*tr(ji,jbdy-1,jk,jn,Krhs_a)+z3*tr(ji,jbdy+1,jk,jn,Krhs_a))*tmask(ji,jbdy,jk) 247 IF( vv(ji,jbdy,jk,Kmm_a) < 0._wp ) THEN 248 tr(ji,jbdy,jk,jn,Krhs_a)=( z6*tr(ji,jbdy+1,jk,jn,Krhs_a)+z5*tr(ji,jbdy-1,jk,jn,Krhs_a) & 249 + z7*tr(ji,jbdy+2,jk,jn,Krhs_a) ) * tmask(ji,jbdy,jk) 250 ENDIF 251 ENDIF 252 END DO 253 END DO 254 ! Restore ghost points: 255 tr(imin:imax,jbdy-1,1:jpkm1,jn,Krhs_a) = ptab_child(imin:imax,jbdy-1,1:jpkm1,jn) * tmask(imin:imax,jbdy-1,1:jpkm1) 256 256 END DO 257 257 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.