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 8138 for branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES/modinterp.F90 – NEMO

Ignore:
Timestamp:
2017-06-05T12:01:03+02:00 (7 years ago)
Author:
timgraham
Message:

Modifications to AGRIF_FILES as received from Laurent (need to check that these are definitely needed)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r8126_UKMO_AGRIF_vert_interp/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES/modinterp.F90

    r7752 r8138  
    132132#if defined AGRIF_MPI 
    133133    INTEGER, DIMENSION(nbdim)     :: indminglob2,indmaxglob2 
     134    INTEGER, DIMENSION(nbdim)     :: indminglob3,indmaxglob3 
    134135#endif 
    135136    LOGICAL, DIMENSION(nbdim)     :: noraftab 
     
    148149    INTEGER, DIMENSION(nbdim,4,0:Agrif_Nbprocs-1)   :: tab4 
    149150    INTEGER, DIMENSION(nbdim,0:Agrif_Nbprocs-1,8)   :: tab4t 
     151    INTEGER,DIMENSION(nbdim,2) :: tab5 
     152    INTEGER,DIMENSION(nbdim,2,0:Agrif_Nbprocs-1) :: tab6 
     153    INTEGER,DIMENSION(nbdim,0:Agrif_Nbprocs-1,2) :: tab5t 
    150154    LOGICAL, DIMENSION(0:Agrif_Nbprocs-1)           :: memberinall 
    151155    LOGICAL, DIMENSION(0:Agrif_Nbprocs-1)           :: sendtoproc1, recvfromproc1 
     
    205209        call Agrif_Childbounds(nbdim,lowerbound,upperbound,                 & 
    206210                               indminglob,indmaxglob, local_proc, coords,   & 
    207                                indminglob2,indmaxglob2,member) 
     211                               indminglob2,indmaxglob2,member,              & 
     212                               indminglob3,indmaxglob3) 
    208213! 
    209214        if (member) then 
     
    224229        member = .TRUE. 
    225230#endif 
     231!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
     232! Correct for non refined directions 
     233!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
     234        do i=1,nbdim 
     235          if (coords(i) == 0) then 
     236             indmin(i) = indminglob(i) 
     237             indmax(i) = indmaxglob(i) 
     238             pttruetab(i) = indminglob(i) 
     239             cetruetab(i) = indmaxglob(i) 
     240          endif 
     241        enddo 
    226242 
    227243    else 
     
    298314        tab3(:,3) = indmin(:) 
    299315        tab3(:,4) = indmax(:) 
     316        tab5(:,1) = indminglob3(:) 
     317        tab5(:,2) = indmaxglob3(:) 
    300318! 
    301319        call MPI_ALLGATHER(tab3,4*nbdim,MPI_INTEGER,tab4,4*nbdim,MPI_INTEGER,Agrif_mpi_comm,code) 
    302  
     320        call MPI_ALLGATHER(tab5,2*nbdim,MPI_INTEGER,tab6,2*nbdim,MPI_INTEGER,Agrif_mpi_comm,code) 
    303321        if (.not.associated(tempPextend))   allocate(tempPextend) 
    304322 
     
    311329        enddo 
    312330 
     331        do k=0,Agrif_Nbprocs-1 
     332          do j=1,2 
     333            do i=1,nbdim 
     334               tab5t(i,k,j) = tab6(i,j,k) 
     335            enddo 
     336          enddo 
     337        enddo 
     338       
    313339        memberin1(1) = memberin 
    314340        call MPI_ALLGATHER(memberin1,1,MPI_LOGICAL,memberinall,1,MPI_LOGICAL,Agrif_mpi_comm,code) 
     
    319345                                     sendtoproc1,recvfromproc1,         & 
    320346                                     tab4t(:,:,5),tab4t(:,:,6),         & 
    321                                      tab4t(:,:,7),tab4t(:,:,8) ) 
     347                                     tab4t(:,:,7),tab4t(:,:,8),         & 
     348                                     tab5t(:,:,1),tab5t(:,:,2)) 
    322349    endif 
    323350 
Note: See TracChangeset for help on using the changeset viewer.