Changeset 662 for trunk/AGRIF/AGRIF_FILES/modmask.F
- Timestamp:
- 2007-05-25T17:58:52+02:00 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/AGRIF/AGRIF_FILES/modmask.F
r396 r662 202 202 C Local scalar 203 203 INTEGER :: i,ii,iii,jj,kk,ll,mm,nn 204 INTEGER,DIMENSION(nbdim) :: imin,imax 204 INTEGER,DIMENSION(nbdim) :: imin,imax,idecal 205 205 INTEGER :: Nbvals 206 206 REAL :: Res … … 235 235 imin(iii) = max(indic(iii) - i,ppbtab(iii)) 236 236 imax(iii) = min(indic(iii) + i,ppetab(iii)) 237 if (firsttest) then 238 if (indic(iii).GT.ppbtab(iii)) then 239 240 idecal = indic 241 idecal(iii) = idecal(iii)-1 242 SELECT CASE(nbdim) 243 CASE (1) 244 if (tempP%var%array1(idecal(1) 245 & ) == Agrif_SpecialValue) then 246 imin(iii) = imax(iii) 247 endif 248 CASE (2) 249 if (tempP%var%array2(idecal(1), 250 & idecal(2)) == Agrif_SpecialValue) then 251 imin(iii) = imax(iii) 252 endif 253 CASE (3) 254 if (tempP%var%array3(idecal(1), 255 & idecal(2),idecal(3)) 256 & == Agrif_SpecialValue) then 257 imin(iii) = imax(iii) 258 endif 259 CASE (4) 260 if (tempP%var%array4(idecal(1), 261 & idecal(2),idecal(3),idecal(4)) 262 & == Agrif_SpecialValue) then 263 imin(iii) = imax(iii) 264 endif 265 CASE (5) 266 if (tempP%var%array5(idecal(1), 267 & idecal(2),idecal(3),idecal(4),idecal(5)) 268 & == Agrif_SpecialValue) then 269 imin(iii) = imax(iii) 270 endif 271 CASE (6) 272 if (tempP%var%array6(idecal(1), 273 & idecal(2),idecal(3),idecal(4),idecal(5),idecal(6)) 274 & == Agrif_SpecialValue) then 275 imin(iii) = imax(iii) 276 endif 277 END SELECT 278 endif 279 endif 237 280 endif 238 281 enddo … … 241 284 Nbvals = 0 242 285 C 243 if ( nbdim .EQ. 1 ) then 286 SELECT CASE(nbdim) 287 CASE (1) 244 288 do ii = imin(1),imax(1) 245 289 ValParent = parent%var%array1(ii) … … 249 293 endif 250 294 enddo 251 endif 252 C 253 if ( nbdim .EQ. 2 ) then 295 C 296 CASE (2) 254 297 do jj = imin(2),imax(2) 255 298 do ii = imin(1),imax(1) … … 261 304 enddo 262 305 enddo 263 endif 264 C 265 if ( nbdim .EQ. 3 ) then 306 307 CASE (3) 266 308 do kk = imin(3),imax(3) 267 309 do jj = imin(2),imax(2) … … 275 317 enddo 276 318 enddo 277 endif 278 C 279 if ( nbdim .EQ. 4 ) then 319 320 CASE (4) 280 321 do ll = imin(4),imax(4) 281 322 do kk = imin(3),imax(3) … … 291 332 enddo 292 333 enddo 293 endif 294 C 295 if ( nbdim .EQ. 5 ) then 334 335 CASE (5) 296 336 do mm = imin(5),imax(5) 297 337 do ll = imin(4),imax(4) … … 309 349 enddo 310 350 enddo 311 endif 312 C 313 if ( nbdim .EQ. 6 ) then 351 352 CASE (6) 314 353 do nn = imin(6),imax(6) 315 354 do mm = imin(5),imax(5) … … 329 368 enddo 330 369 enddo 331 endif 370 371 END SELECT 332 372 C 333 373 C … … 336 376 if (firsttest) then 337 377 firsttest = .FALSE. 378 i=1 338 379 cycle 339 380 endif 340 if ( nbdim .EQ. 1 ) tempP%var%array1(indic(1)) 381 SELECT CASE(nbdim) 382 CASE (1) 383 tempP%var%array1(indic(1)) 341 384 & = Res/Nbvals 342 if ( nbdim .EQ. 2 ) tempP%var%array2(indic(1), 385 CASE (2) 386 tempP%var%array2(indic(1), 343 387 & indic(2)) = Res/Nbvals 344 if ( nbdim .EQ. 3 ) tempP%var%array3(indic(1), 388 CASE (3) 389 tempP%var%array3(indic(1), 345 390 & indic(2),indic(3)) = Res/Nbvals 346 if ( nbdim .EQ. 4 ) tempP%var%array4(indic(1), 391 CASE (4) 392 tempP%var%array4(indic(1), 347 393 & indic(2),indic(3),indic(4)) 348 394 & = Res/Nbvals 349 if ( nbdim .EQ. 5 ) tempP%var%array5(indic(1), 395 CASE (5) 396 tempP%var%array5(indic(1), 350 397 & indic(2),indic(3),indic(4), 351 398 & indic(5)) = Res/Nbvals 352 if ( nbdim .EQ. 6 ) tempP%var%array6(indic(1), 399 CASE (6) 400 tempP%var%array6(indic(1), 353 401 & indic(2),indic(3),indic(4), 354 402 & indic(5),indic(6)) = Res/Nbvals 403 END SELECT 355 404 exit 356 405 else
Note: See TracChangeset
for help on using the changeset viewer.