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 352 for trunk/NEMO/OPA_SRC/mppini.F90 – NEMO

Ignore:
Timestamp:
2005-12-12T15:18:10+01:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_033 : CT : Switch to IOIPSL-3-0 new library

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/mppini.F90

    r258 r352  
    1616   USE sol_oce         ! ocean elliptic solver 
    1717   USE lib_mpp         ! distribued memory computing library 
     18   USE ioipsl 
    1819 
    1920   IMPLICIT NONE 
     
    5152      !!   9.0  !  04-01  (G. Madec, J.M. Molines)  F90 : free form, north fold jpni >1 
    5253      !!---------------------------------------------------------------------- 
     54 
    5355      ! No mpp computation 
    54  
    5556      nimpp  = 1 
    5657      njmpp  = 1 
     
    6465      nbondi = 2 
    6566      nbondj = 2 
     67      nidom  = FLIO_DOM_NONE 
     68 
    6669      IF(lwp) THEN 
    6770         WRITE(numout,*) 
     
    8083          nstop = nstop + 1 
    8184      ENDIF 
     85 
    8286 
    8387   END SUBROUTINE mpp_init 
     
    499503      !!   9.0  !  04-03  (G. Madec)  MPP-IOIPSL  
    500504      !!---------------------------------------------------------------------- 
    501       USE ioipsl 
    502       INTEGER, DIMENSION(4) ::   & 
    503          iglo, iloc, iabsf, iabsl, ihals, ihale   ! ??? 
    504       !!---------------------------------------------------------------------- 
     505      !! Local declarations 
     506 
     507      INTEGER, DIMENSION(2) ::   & 
     508         iglo, iloc, iabsf, iabsl, ihals, ihale, idid 
     509      INTEGER ::   & 
     510         inbondi, inbondj 
     511      !!---------------------------------------------------------------------- 
     512 
     513      ! The domain is splitted only horizontally along i- or/and j- direction 
     514      ! So we need at the most only 1D arrays with 2 elements 
    505515      iglo(1) = jpiglo 
    506516      iglo(2) = jpjglo 
    507       iglo(3) = jpk 
    508       iglo(4) = 1 
    509517      iloc(1) = nlci 
    510518      iloc(2) = nlcj 
    511       iloc(3) = jpk 
    512       iloc(4) = 1 
    513519      iabsf(1) = nimppt(narea) 
    514520      iabsf(2) = njmppt(narea) 
    515       iabsf(3) = 1 
    516       iabsf(4) = 1 
    517521      iabsl(:) = iabsf(:) + iloc(:) - 1 
    518522      ihals(1) = jpreci 
    519523      ihals(2) = jprecj 
    520       ihals(3) = 0 
    521       ihals(4) = 0 
    522524      ihale(1) = jpreci 
    523525      ihale(2) = jprecj 
    524       ihale(3) = 0 
    525       ihale(4) = 0 
    526       IF( nbondi == -1 .OR. nbondi == 2 )   ihals(1) = 0 
    527       IF( nbondi ==  1 .OR. nbondi == 2 )   ihale(1) = 0 
    528       IF( nbondj == -1 .OR. nbondj == 2 )   ihals(2) = 0 
    529       IF( nbondj ==  1 .OR. nbondj == 2 )   ihale(2) = 0 
     526      idid(1) = 1 
     527      idid(2) = 2 
     528 
     529      inbondj = -1                                   ! general case 
     530      IF( narea   >  jpni          )   inbondj = 0      ! first row of processor 
     531      IF( narea   >  (jpnj-1)*jpni )   inbondj = 1      ! last  row of processor 
     532      IF( jpnj    == 1             )   inbondj = 2      ! one processor only in j-direction 
     533      IF( inbondj == -1 .OR. inbondj == 2 )   ihals(2) = 0 
     534      IF( inbondj ==  1 .OR. inbondj == 2 )   ihale(2) = 0 
     535          
     536      inbondi = 0                                    !  
     537      IF( MOD( narea, jpni ) == 1 )   inbondi = -1      ! 
     538      IF( MOD( narea, jpni ) == 0 )   inbondi =  1      ! 
     539      IF( jpni               == 1 )   inbondi =  2      ! one processor only in i-direction 
     540      IF( inbondi == -1 .OR. inbondi == 2 )   ihals(1) = 0 
     541      IF( inbondi ==  1 .OR. inbondi == 2 )   ihale(1) = 0 
     542 
     543 
    530544      IF(lwp) THEN 
    531           WRITE(numout,*) 'mpp_init_ioipsl :   iloc  = ', iloc (1), iloc (2), iloc (3), iloc (4) 
    532           WRITE(numout,*) '~~~~~~~~~~~~~~~     iabsf = ', iabsf(1), iabsf(2), iabsf(3), iabsf(4) 
    533           WRITE(numout,*) '                    ihals = ', ihals(1), ihals(2), ihals(3), ihals(4) 
    534           WRITE(numout,*) '                    ihale = ', ihale(1), ihale(2), ihale(3), ihale(4) 
    535       ENDIF 
    536  
    537       CALL ioipsl_inimpp( jpnij, nproc, iglo, iloc, iabsf, iabsl, ihals, ihale ) 
     545          WRITE(numout,*) 'mpp_init_ioipsl :   iloc  = ', iloc (1), iloc (2) 
     546          WRITE(numout,*) '~~~~~~~~~~~~~~~     iabsf = ', iabsf(1), iabsf(2) 
     547          WRITE(numout,*) '                    ihals = ', ihals(1), ihals(2) 
     548          WRITE(numout,*) '                    ihale = ', ihale(1), ihale(2) 
     549      ENDIF 
     550 
     551      CALL flio_dom_set ( jpnij, nproc, idid, iglo, iloc, iabsf, iabsl, ihals, ihale, 'BOX', nidom) 
    538552 
    539553   END SUBROUTINE mpp_init_ioipsl   
Note: See TracChangeset for help on using the changeset viewer.