Changeset 12765 for NEMO/branches/UKMO/dev_r12745_HPC-02_Daley_Tiling_trial_public/src/OCE/DOM/domain.F90
- Timestamp:
- 2020-04-17T14:45:04+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/UKMO/dev_r12745_HPC-02_Daley_Tiling_trial_public/src/OCE/DOM/domain.F90
r12489 r12765 49 49 50 50 PUBLIC dom_init ! called by nemogcm.F90 51 PUBLIC dom_tile ! called by step.F90 51 52 PUBLIC domain_cfg ! called by nemogcm.F90 52 53 … … 122 123 CALL dom_glo ! global domain versus local domain 123 124 CALL dom_nam ! read namelist ( namrun, namdom ) 125 126 ! Initialise tile to full domain 127 CALL dom_tile(0) 128 124 129 ! 125 130 IF( lwxios ) THEN … … 270 275 271 276 277 SUBROUTINE dom_tile(kntile) 278 !!---------------------------------------------------------------------- 279 !! *** ROUTINE dom_tile *** 280 !! 281 !! ** Purpose : Set domain indices for specified tile 282 !! 283 !! ** Action : - ntile : current tile number 284 !! - ntsi, ntsj : start of internal part of domain 285 !! - ntei, ntej : end of internal part of domain 286 !! - ntsim1, ntsjm1 : start of domain 287 !! - nteip1, ntejp1 : end of domain 288 !!---------------------------------------------------------------------- 289 INTEGER , INTENT(in ) :: kntile ! Tile number 290 INTEGER :: iitile, ijtile ! Tile number in i and j 291 !!---------------------------------------------------------------------- 292 293 IF( ln_tile .AND. kntile > 0 ) THEN ! Tile domain 294 iitile = 1 + MOD( kntile - 1, jpnitile ) 295 ijtile = 1 + (kntile - 1) / jpnitile 296 297 ntile = kntile 298 ntsi = 2 + (iitile - 1) * nn_tile_i 299 ntsj = 2 + (ijtile - 1) * nn_tile_j 300 ntei = MIN(ntsi + nn_tile_i - 1, jpim1) ! Size of last tile limited by full domain 301 ntej = MIN(ntsj + nn_tile_j - 1, jpjm1) ! 302 ntsim1 = ntsi - 1 303 ntsjm1 = ntsj - 1 304 nteip1 = ntei + 1 305 ntejp1 = ntej + 1 306 ELSE ! Full domain 307 ntile = 1 308 ntsi = 2 309 ntsj = 2 310 ntei = jpim1 311 ntej = jpjm1 312 ntsim1 = 1 313 ntsjm1 = 1 314 nteip1 = jpi 315 ntejp1 = jpj 316 ENDIF 317 END SUBROUTINE dom_tile 318 319 272 320 SUBROUTINE dom_nam 273 321 !!---------------------------------------------------------------------- … … 278 326 !! ** input : - namrun namelist 279 327 !! - namdom namelist 328 !! - namtile namelist 280 329 !! - namnc4 namelist ! "key_netcdf4" only 281 330 !!---------------------------------------------------------------------- … … 290 339 & ln_cfmeta, ln_xios_read, nn_wxios 291 340 NAMELIST/namdom/ ln_linssh, rn_Dt, rn_atfp, ln_crs, ln_meshmask 341 NAMELIST/namtile/ ln_tile, nn_tile_i, nn_tile_j 292 342 #if defined key_netcdf4 293 343 NAMELIST/namnc4/ nn_nchunks_i, nn_nchunks_j, nn_nchunks_k, ln_nc4zip … … 417 467 r1_Dt = 1._wp / rDt 418 468 469 READ ( numnam_ref, namtile, IOSTAT = ios, ERR = 905 ) 470 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtile in reference namelist' ) 471 READ ( numnam_cfg, namtile, IOSTAT = ios, ERR = 906 ) 472 906 IF( ios > 0 ) CALL ctl_nam ( ios , 'namtile in configuration namelist' ) 473 IF(lwm) WRITE( numond, namtile ) 474 475 ! Set tile decomposition 476 IF( ln_tile ) THEN 477 jpnitile = (jpi - 2) / nn_tile_i 478 jpnjtile = (jpj - 2) / nn_tile_j 479 IF( MOD( jpi - 2, nn_tile_i ) /= 0 ) jpnitile = jpnitile + 1 480 IF( MOD( jpj - 2, nn_tile_j ) /= 0 ) jpnjtile = jpnjtile + 1 481 ELSE 482 jpnitile = 1 483 jpnjtile = 1 484 ENDIF 485 jpnijtile = jpnitile * jpnjtile 486 487 IF(lwp) THEN 488 WRITE(numout,*) 489 WRITE(numout,*) ' Namelist : namtile --- tiling decomposition' 490 WRITE(numout,*) ' Tiling (T) or not (F) ln_tile = ', ln_tile 491 WRITE(numout,*) ' Length of tile in i nn_tile_i = ', nn_tile_i 492 WRITE(numout,*) ' Length of tile in j nn_tile_j = ', nn_tile_j 493 WRITE(numout,*) 494 IF( ln_tile ) THEN 495 WRITE(numout,*) ' The domain will be decomposed into', jpnijtile, 'tiles of size', nn_tile_i, 'x', nn_tile_j 496 ELSE 497 WRITE(numout,*) ' Domain tiling will NOT be used' 498 ENDIF 499 ENDIF 500 419 501 IF( TRIM(Agrif_CFixed()) == '0' ) THEN 420 502 lrxios = ln_xios_read.AND.ln_rstart
Note: See TracChangeset
for help on using the changeset viewer.