- Timestamp:
- 2019-11-22T15:29:17+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11943_MERGE_2019/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src
- Property svn:mergeinfo deleted
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/NST/agrif_top_interp.F90
r10068 r11949 73 73 DO jj=j1,j2 74 74 DO ji=i1,i2 75 ptab(ji,jj,jk,jn) = tr n(ji,jj,jk,jn)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 _n(ji,jj,jk)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 _n(iref,jref,jk)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 a(i1:i2,j1:j2,1:jpk,jn)=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 tra(ibdy+1,jmin:jmax,1:jpkm1,jn) = 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) & 154 & + z2 * ptab_child(ibdy ,jmin:jmax,1:jpkm1,jn) 154 155 DO jk = 1, jpkm1 155 156 DO jj = jmin,jmax 156 157 IF( umask(ibdy-1,jj,jk) == 0._wp ) THEN 157 tra(ibdy,jj,jk,jn) = tra(ibdy+1,jj,jk,jn) * tmask(ibdy,jj,jk) 158 ELSE 159 tra(ibdy,jj,jk,jn)=(z4*tra(ibdy+1,jj,jk,jn)+z3*tra(ibdy-1,jj,jk,jn))*tmask(ibdy,jj,jk) 160 IF( un(ibdy-1,jj,jk) > 0._wp ) THEN 161 tra(ibdy,jj,jk,jn)=( z6*tra(ibdy-1,jj,jk,jn)+z5*tra(ibdy+1,jj,jk,jn) & 162 + z7*tra(ibdy-2,jj,jk,jn) ) * tmask(ibdy,jj,jk) 163 ENDIF 164 ENDIF 165 END DO 166 END DO 167 ! Restore ghost points: 168 tra(ibdy+1,jmin:jmax,1:jpkm1,jn) = ptab_child(ibdy+1,jmin:jmax,1:jpkm1,jn) * tmask(ibdy+1,jmin:jmax,1:jpkm1) 158 tr(ibdy,jj,jk,jn,Krhs_a) = tr(ibdy+1,jj,jk,jn,Krhs_a) * tmask(ibdy,jj,jk) 159 ELSE 160 tr(ibdy,jj,jk,jn,Krhs_a) = ( z4 * tr(ibdy+1,jj,jk,jn,Krhs_a) & 161 & + z3 * tr(ibdy-1,jj,jk,jn,Krhs_a) & 162 & ) * tmask(ibdy ,jj,jk) 163 IF( uu(ibdy-1,jj,jk,Kmm_a) > 0._wp ) THEN 164 tr(ibdy,jj,jk,jn,Krhs_a) = ( z6 * tr(ibdy-1,jj,jk,jn,Krhs_a) & 165 & + z5 * tr(ibdy+1,jj,jk,jn,Krhs_a) & 166 & + z7 * tr(ibdy-2,jj,jk,jn,Krhs_a) & 167 & ) * tmask(ibdy ,jj,jk) 168 ENDIF 169 ENDIF 170 END DO 171 END DO 172 ! Restore ghost points: 173 tr(ibdy+1,jmin:jmax,1:jpkm1,jn,Krhs_a) = ptab_child(ibdy+1,jmin:jmax,1:jpkm1,jn) & 174 & * tmask(ibdy+1,jmin:jmax,1:jpkm1) 169 175 END DO 170 176 ENDIF … … 180 186 jbdy = nlcj-nbghostcells 181 187 DO jn = 1, jptra 182 tra(imin:imax,jbdy+1,1:jpkm1,jn) = z1 * ptab_child(imin:imax,jbdy+1,1:jpkm1,jn) + z2 * ptab_child(imin:imax,jbdy,1:jpkm1,jn) 188 tr(imin:imax,jbdy+1,1:jpkm1,jn,Krhs_a) = z1 * ptab_child(imin:imax,jbdy+1,1:jpkm1,jn) & 189 & + z2 * ptab_child(imin:imax,jbdy ,1:jpkm1,jn) 183 190 DO jk = 1, jpkm1 184 191 DO ji = imin,imax 185 192 IF( vmask(ji,jbdy-1,jk) == 0._wp ) THEN 186 tra(ji,jbdy,jk,jn) = tra(ji,jbdy+1,jk,jn) * tmask(ji,jbdy,jk) 187 ELSE 188 tra(ji,jbdy,jk,jn)=(z4*tra(ji,jbdy+1,jk,jn)+z3*tra(ji,jbdy-1,jk,jn))*tmask(ji,jbdy,jk) 189 IF (vn(ji,jbdy-1,jk) > 0._wp ) THEN 190 tra(ji,jbdy,jk,jn)=( z6*tra(ji,jbdy-1,jk,jn)+z5*tra(ji,jbdy+1,jk,jn) & 191 + z7*tra(ji,jbdy-2,jk,jn) ) * tmask(ji,jbdy,jk) 192 ENDIF 193 ENDIF 194 END DO 195 END DO 196 ! Restore ghost points: 197 tra(imin:imax,jbdy+1,1:jpkm1,jn) = ptab_child(imin:imax,jbdy+1,1:jpkm1,jn) * tmask(imin:imax,jbdy+1,1:jpkm1) 193 tr(ji,jbdy,jk,jn,Krhs_a) = tr(ji,jbdy+1,jk,jn,Krhs_a) * tmask(ji,jbdy,jk) 194 ELSE 195 tr(ji,jbdy,jk,jn,Krhs_a) = ( z4 * tr(ji,jbdy+1,jk,jn,Krhs_a) 196 & + z3 * tr(ji,jbdy-1,jk,jn,Krhs_a) ) * tmask(ji,jbdy,jk) 197 IF (vv(ji,jbdy-1,jk,Kmm_a) > 0._wp ) THEN 198 tr(ji,jbdy,jk,jn,Krhs_a) = ( z6 * tr(ji,jbdy-1,jk,jn,Krhs_a) & 199 & + z5 * tr(ji,jbdy+1,jk,jn,Krhs_a) & 200 & + z7 * tr(ji,jbdy-2,jk,jn,Krhs_a) ) * tmask(ji,jbdy,jk) 201 ENDIF 202 ENDIF 203 END DO 204 END DO 205 ! Restore ghost points: 206 tr(imin:imax,jbdy+1,1:jpkm1,jn,Krhs_a) = ptab_child(imin:imax,jbdy+1,1:jpkm1,jn) & 207 & * tmask(imin:imax,jbdy+1,1:jpkm1) 198 208 END DO 199 209 ENDIF … … 209 219 ibdy = 1+nbghostcells 210 220 DO jn = 1, jptra 211 tra(ibdy-1,jmin:jmax,1:jpkm1,jn) = z1 * ptab_child(ibdy-1,jmin:jmax,1:jpkm1,jn) + z2 * ptab_child(ibdy,jmin:jmax,1:jpkm1,jn) 221 tr(ibdy-1,jmin:jmax,1:jpkm1,jn,Krhs_a) = z1 * ptab_child(ibdy-1,jmin:jmax,1:jpkm1,jn) & 222 & + z2 * ptab_child(ibdy ,jmin:jmax,1:jpkm1,jn) 212 223 DO jk = 1, jpkm1 213 224 DO jj = jmin,jmax 214 225 IF( umask(ibdy,jj,jk) == 0._wp ) THEN 215 tra(ibdy,jj,jk,jn) = tra(ibdy-1,jj,jk,jn) * tmask(ibdy,jj,jk) 216 ELSE 217 tra(ibdy,jj,jk,jn)=(z4*tra(ibdy-1,jj,jk,jn)+z3*tra(ibdy+1,jj,jk,jn))*tmask(ibdy,jj,jk) 218 IF( un(ibdy,jj,jk) < 0._wp ) THEN 219 tra(ibdy,jj,jk,jn)=( z6*tra(ibdy+1,jj,jk,jn)+z5*tra(ibdy-1,jj,jk,jn) & 220 + z7*tra(ibdy+2,jj,jk,jn) ) * tmask(ibdy,jj,jk) 221 ENDIF 222 ENDIF 223 END DO 224 END DO 225 ! Restore ghost points: 226 tra(ibdy-1,jmin:jmax,1:jpkm1,jn) = ptab_child(ibdy-1,jmin:jmax,1:jpkm1,jn) * tmask(ibdy-1,jmin:jmax,1:jpkm1) 226 tr(ibdy,jj,jk,jn,Krhs_a) = tr(ibdy-1,jj,jk,jn,Krhs_a) * tmask(ibdy,jj,jk) 227 ELSE 228 tr(ibdy,jj,jk,jn,Krhs_a) = ( z4 * tr(ibdy-1,jj,jk,jn,Krhs_a) & 229 & + z3 * tr(ibdy+1,jj,jk,jn,Krhs_a) ) * tmask(ibdy,jj,jk) 230 IF( uu(ibdy,jj,jk,Kmm_a) < 0._wp ) THEN 231 tr(ibdy,jj,jk,jn,Krhs_a) = ( z6 * tr(ibdy+1,jj,jk,jn,Krhs_a) & 232 & + z5 * tr(ibdy-1,jj,jk,jn,Krhs_a) & 233 & + z7 * tr(ibdy+2,jj,jk,jn,Krhs_a) ) * tmask(ibdy,jj,jk) 234 ENDIF 235 ENDIF 236 END DO 237 END DO 238 ! Restore ghost points: 239 tr(ibdy-1,jmin:jmax,1:jpkm1,jn,Krhs_a) = ptab_child(ibdy-1,jmin:jmax,1:jpkm1,jn) & 240 & * tmask(ibdy-1,jmin:jmax,1:jpkm1) 227 241 END DO 228 242 ENDIF … … 238 252 jbdy=1+nbghostcells 239 253 DO jn = 1, jptra 240 tra(imin:imax,jbdy-1,1:jpkm1,jn) = z1 * ptab_child(imin:imax,jbdy-1,1:jpkm1,jn) + z2 * ptab_child(imin:imax,jbdy,1:jpkm1,jn) 254 tr(imin:imax,jbdy-1,1:jpkm1,jn,Krhs_a) = z1 * ptab_child(imin:imax,jbdy-1,1:jpkm1,jn) & 255 & + z2 * ptab_child(imin:imax,jbdy ,1:jpkm1,jn) 241 256 DO jk = 1, jpkm1 242 257 DO ji = imin,imax 243 258 IF( vmask(ji,jbdy,jk) == 0._wp ) THEN 244 tra(ji,jbdy,jk,jn)=tra(ji,jbdy-1,jk,jn) * tmask(ji,jbdy,jk) 245 ELSE 246 tra(ji,jbdy,jk,jn)=(z4*tra(ji,jbdy-1,jk,jn)+z3*tra(ji,jbdy+1,jk,jn))*tmask(ji,jbdy,jk) 247 IF( vn(ji,jbdy,jk) < 0._wp ) THEN 248 tra(ji,jbdy,jk,jn)=( z6*tra(ji,jbdy+1,jk,jn)+z5*tra(ji,jbdy-1,jk,jn) & 249 + z7*tra(ji,jbdy+2,jk,jn) ) * tmask(ji,jbdy,jk) 250 ENDIF 251 ENDIF 252 END DO 253 END DO 254 ! Restore ghost points: 255 tra(imin:imax,jbdy-1,1:jpkm1,jn) = ptab_child(imin:imax,jbdy-1,1:jpkm1,jn) * tmask(imin:imax,jbdy-1,1:jpkm1) 259 tr(ji,jbdy,jk,jn,Krhs_a) = tr(ji,jbdy-1,jk,jn,Krhs_a) * tmask(ji,jbdy,jk) 260 ELSE 261 tr(ji,jbdy,jk,jn,Krhs_a) = ( z4 * tr(ji,jbdy-1,jk,jn,Krhs_a) & 262 & + z3 * tr(ji,jbdy+1,jk,jn,Krhs_a) ) * tmask(ji,jbdy,jk) 263 IF( vv(ji,jbdy,jk,Kmm_a) < 0._wp ) THEN 264 tr(ji,jbdy,jk,jn,Krhs_a) = ( z6 * tr(ji,jbdy+1,jk,jn,Krhs_a) & 265 & + z5 * tr(ji,jbdy-1,jk,jn,Krhs_a) & 266 & + z7 * tr(ji,jbdy+2,jk,jn,Krhs_a) ) * tmask(ji,jbdy,jk) 267 ENDIF 268 ENDIF 269 END DO 270 END DO 271 ! Restore ghost points: 272 tr(imin:imax,jbdy-1,1:jpkm1,jn,Krhs_a) = ptab_child(imin:imax,jbdy-1,1:jpkm1,jn) & 273 & * tmask(imin:imax,jbdy-1,1:jpkm1) 256 274 END DO 257 275 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.