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 14090 – NEMO

Changeset 14090


Ignore:
Timestamp:
2020-12-04T14:32:28+01:00 (3 years ago)
Author:
hadcv
Message:

#2365: Move dom_tile into domtile.F90

Location:
NEMO/trunk
Files:
1 added
12 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/ASM/asminc.F90

    r14072 r14090  
    2626   USE par_oce         ! Ocean space and time domain variables 
    2727   USE dom_oce         ! Ocean space and time domain 
    28    USE domain, ONLY : dom_tile 
     28   USE domtile 
    2929   USE domvvl          ! domain: variable volume level 
    3030   USE ldfdyn          ! lateral diffusion: eddy viscosity coefficients 
  • NEMO/trunk/src/OCE/DIA/diaptr.F90

    r14072 r14090  
    2222   USE oce              ! ocean dynamics and active tracers 
    2323   USE dom_oce          ! ocean space and time domain 
    24    USE domain, ONLY : dom_tile 
     24   USE domtile 
    2525   USE phycst           ! physical constants 
    2626   ! 
  • NEMO/trunk/src/OCE/DOM/domain.F90

    r14072 r14090  
    3939   USE domhgr         ! domain: set the horizontal mesh 
    4040   USE domzgr         ! domain: set the vertical mesh 
     41   USE domtile 
    4142   USE dommsk         ! domain: set the mask system 
    4243   USE domwri         ! domain: write the meshmask file 
     
    4647   USE closea  , ONLY : dom_clo   ! closed seas routine 
    4748   ! 
    48    USE prtctl         ! Print control (prt_ctl_info routine) 
    4949   USE in_out_manager ! I/O manager 
    5050   USE iom            ! I/O library 
     
    5858   PUBLIC   dom_init     ! called by nemogcm.F90 
    5959   PUBLIC   domain_cfg   ! called by nemogcm.F90 
    60    PUBLIC   dom_tile     ! called by step.F90 
    6160 
    6261   !! * Substitutions 
     
    301300 
    302301 
    303    SUBROUTINE dom_tile( ktsi, ktsj, ktei, ktej, ktile ) 
    304       !!---------------------------------------------------------------------- 
    305       !!                     ***  ROUTINE dom_tile  *** 
    306       !! 
    307       !! ** Purpose :   Set tile domain variables 
    308       !! 
    309       !! ** Action  : - ktsi, ktsj     : start of internal part of domain 
    310       !!              - ktei, ktej     : end of internal part of domain 
    311       !!              - ntile          : current tile number 
    312       !!              - nijtile        : total number of tiles 
    313       !!---------------------------------------------------------------------- 
    314       INTEGER, INTENT(out) :: ktsi, ktsj, ktei, ktej      ! Tile domain indices 
    315       INTEGER, INTENT(in), OPTIONAL :: ktile              ! Tile number 
    316       INTEGER ::   jt                                     ! dummy loop argument 
    317       INTEGER ::   iitile, ijtile                         ! Local integers 
    318       CHARACTER (len=11) ::   charout 
    319       !!---------------------------------------------------------------------- 
    320       IF( PRESENT(ktile) .AND. ln_tile ) THEN 
    321          ntile = ktile                 ! Set domain indices for tile 
    322          ktsi = ntsi_a(ktile) 
    323          ktsj = ntsj_a(ktile) 
    324          ktei = ntei_a(ktile) 
    325          ktej = ntej_a(ktile) 
    326  
    327          IF(sn_cfctl%l_prtctl) THEN 
    328             WRITE(charout, FMT="('ntile =', I4)") ktile 
    329             CALL prt_ctl_info( charout ) 
    330          ENDIF 
    331       ELSE 
    332          ntile = 0                     ! Initialise to full domain 
    333          nijtile = 1 
    334          ktsi = Nis0 
    335          ktsj = Njs0 
    336          ktei = Nie0 
    337          ktej = Nje0 
    338  
    339          IF( ln_tile ) THEN            ! Calculate tile domain indices 
    340             iitile = Ni_0 / nn_ltile_i       ! Number of tiles 
    341             ijtile = Nj_0 / nn_ltile_j 
    342             IF( MOD( Ni_0, nn_ltile_i ) /= 0 ) iitile = iitile + 1 
    343             IF( MOD( Nj_0, nn_ltile_j ) /= 0 ) ijtile = ijtile + 1 
    344  
    345             nijtile = iitile * ijtile 
    346             ALLOCATE( ntsi_a(0:nijtile), ntsj_a(0:nijtile), ntei_a(0:nijtile), ntej_a(0:nijtile) ) 
    347  
    348             ntsi_a(0) = ktsi                 ! Full domain 
    349             ntsj_a(0) = ktsj 
    350             ntei_a(0) = ktei 
    351             ntej_a(0) = ktej 
    352  
    353             DO jt = 1, nijtile               ! Tile domains 
    354                ntsi_a(jt) = Nis0 + nn_ltile_i * MOD(jt - 1, iitile) 
    355                ntsj_a(jt) = Njs0 + nn_ltile_j * ((jt - 1) / iitile) 
    356                ntei_a(jt) = MIN(ntsi_a(jt) + nn_ltile_i - 1, Nie0) 
    357                ntej_a(jt) = MIN(ntsj_a(jt) + nn_ltile_j - 1, Nje0) 
    358             ENDDO 
    359          ENDIF 
    360  
    361          IF(lwp) THEN                  ! control print 
    362             WRITE(numout,*) 
    363             WRITE(numout,*) 'dom_tile : Domain tiling decomposition' 
    364             WRITE(numout,*) '~~~~~~~~' 
    365             IF( ln_tile ) THEN 
    366                WRITE(numout,*) iitile, 'tiles in i' 
    367                WRITE(numout,*) '    Starting indices' 
    368                WRITE(numout,*) '        ', (ntsi_a(jt), jt=1, iitile) 
    369                WRITE(numout,*) '    Ending indices' 
    370                WRITE(numout,*) '        ', (ntei_a(jt), jt=1, iitile) 
    371                WRITE(numout,*) ijtile, 'tiles in j' 
    372                WRITE(numout,*) '    Starting indices' 
    373                WRITE(numout,*) '        ', (ntsj_a(jt), jt=1, nijtile, iitile) 
    374                WRITE(numout,*) '    Ending indices' 
    375                WRITE(numout,*) '        ', (ntej_a(jt), jt=1, nijtile, iitile) 
    376             ELSE 
    377                WRITE(numout,*) 'No domain tiling' 
    378                WRITE(numout,*) '    i indices =', ktsi, ':', ktei 
    379                WRITE(numout,*) '    j indices =', ktsj, ':', ktej 
    380             ENDIF 
    381          ENDIF 
    382       ENDIF 
    383    END SUBROUTINE dom_tile 
    384  
    385  
    386302   SUBROUTINE dom_nam 
    387303      !!---------------------------------------------------------------------- 
  • NEMO/trunk/src/OCE/DOM/dtatsd.F90

    r14072 r14090  
    1818   USE phycst          ! physical constants 
    1919   USE dom_oce         ! ocean space and time domain 
    20    USE domain, ONLY : dom_tile 
     20   USE domtile 
    2121   USE fldread         ! read input fields 
    2222   ! 
  • NEMO/trunk/src/OCE/TRA/traadv.F90

    r14072 r14090  
    1919   USE dom_oce        ! ocean space and time domain 
    2020   ! TEMP: [tiling] This change not necessary after extended haloes development 
    21    USE domain, ONLY : dom_tile 
     21   USE domtile 
    2222   USE domvvl         ! variable vertical scale factors 
    2323   USE sbcwave        ! wave module 
  • NEMO/trunk/src/OCE/TRA/traldf.F90

    r14072 r14090  
    1818   USE dom_oce        ! ocean space and time domain 
    1919   ! TEMP: [tiling] This change not necessary after extra haloes development (lbc_lnk removed from tra_ldf_blp, zps_hde*) 
    20    USE domain, ONLY : dom_tile 
     20   USE domtile 
    2121   USE phycst         ! physical constants 
    2222   USE ldftra         ! lateral diffusion: eddy diffusivity & EIV coeff. 
  • NEMO/trunk/src/OCE/TRA/traldf_triad.F90

    r14072 r14090  
    1414   USE dom_oce        ! ocean space and time domain 
    1515   ! TEMP: [tiling] This change not necessary if XIOS has subdomain support 
    16    USE domain, ONLY : dom_tile 
     16   USE domtile 
    1717   USE domutl, ONLY : is_tile 
    1818   USE phycst         ! physical constants 
  • NEMO/trunk/src/OCE/TRA/tranpc.F90

    r14072 r14090  
    1818   USE dom_oce        ! ocean space and time domain 
    1919   ! TEMP: [tiling] This change not necessary after extra haloes development (lbc_lnk removed) 
    20    USE domain, ONLY : dom_tile 
     20   USE domtile 
    2121   USE phycst         ! physical constants 
    2222   USE zdf_oce        ! ocean vertical physics 
  • NEMO/trunk/src/OCE/TRA/traqsr.F90

    r14072 r14090  
    2222   USE phycst         ! physical constants 
    2323   USE dom_oce        ! ocean space and time domain 
    24    USE domain, ONLY : dom_tile 
     24   USE domtile 
    2525   USE sbc_oce        ! surface boundary condition: ocean 
    2626   USE trc_oce        ! share SMS/Ocean variables 
  • NEMO/trunk/src/OCE/TRD/trdini.F90

    r14072 r14090  
    1111   !!---------------------------------------------------------------------- 
    1212   USE dom_oce        ! ocean domain 
    13    USE domain, ONLY : dom_tile 
     13   USE domtile 
    1414   USE trd_oce        ! trends: ocean variables 
    1515   USE trdken         ! trends: 3D kinetic   energy 
  • NEMO/trunk/src/OCE/step_oce.F90

    r14086 r14090  
    1010   USE oce             ! ocean dynamics and tracers variables 
    1111   USE dom_oce         ! ocean space and time domain variables 
    12    USE domain  ,  ONLY : dom_tile 
     12   USE domtile 
    1313 
    1414   USE daymod          ! calendar                         (day     routine) 
  • NEMO/trunk/tests/ISOMIP+/MY_SRC/dtatsd.F90

    r13982 r14090  
    1818   USE phycst          ! physical constants 
    1919   USE dom_oce         ! ocean space and time domain 
    20    USE domain, ONLY : dom_tile 
     20   USE domtile 
    2121   USE fldread         ! read input fields 
    2222   ! 
Note: See TracChangeset for help on using the changeset viewer.