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 2731 for trunk – NEMO

Changeset 2731 for trunk


Ignore:
Timestamp:
2011-04-08T14:05:35+02:00 (13 years ago)
Author:
rblod
Message:

Changes for Agrif in MPI

Location:
trunk/NEMOGCM
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/CONFIG/makenemo

    r2528 r2731  
    265265 
    266266#- At this stage the configuration has beeen chosen 
     267#- We coose the default light file 
     268export USEBLD=bldxioxag.cfg 
     269 
    267270#- We look after agrif 
    268 grep key_agrif ${COMPIL_DIR}/cpp.fcm && export AGRIFUSE=1 
     271grep key_agrif ${COMPIL_DIR}/cpp.fcm && export AGRIFUSE=1 && export USEBLD=${USEBLD/xag/} 
    269272. ${COMPIL_DIR}/Fprep_agrif.sh ${NEW_CONF} ${NEMO_TDIR} || exit 
    270273 
    271274#- and test whether we need to build the ioserver 
    272 export USEBLD=bldxio.cfg 
    273 grep key_iomput ${COMPIL_DIR}/cpp.fcm && export USEBLD=bld.cfg 
     275grep key_iomput ${COMPIL_DIR}/cpp.fcm && export USEBLD=${USEBLD/xio/} 
    274276 
    275277#- 
  • trunk/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES/modbc.F

    r2715 r2731  
    814814       
    815815      CALL MPI_ALLREDUCE(iminmaxg,lubglob,2*nbdim,MPI_INTEGER,MPI_MIN, 
    816      &                     MPI_COMM_WORLD,code)   
     816     &                     MPI_COMM_AGRIF,code)   
    817817      
    818818      lubglob(1:nbdim,2) = - lubglob(1:nbdim,2)       
  • trunk/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES/modinterp.F

    r2715 r2731  
    892892C 
    893893      Call MPI_ALLGATHER(tab3,4*nbdim,MPI_INTEGER,tab4,4*nbdim, 
    894      &                   MPI_INTEGER,MPI_COMM_WORLD,code) 
     894     &                   MPI_INTEGER,MPI_COMM_AGRIF,code) 
    895895 
    896896      IF (.not.associated(tempPextend%var)) Allocate(tempPextend%var) 
     
    906906      memberin1(1) = memberin 
    907907      CALL MPI_ALLGATHER(memberin1,1,MPI_LOGICAL,memberinall, 
    908      &                  1,MPI_LOGICAL,MPI_COMM_WORLD,code) 
     908     &                  1,MPI_LOGICAL,MPI_COMM_AGRIF,code) 
    909909 
    910910       Call Get_External_Data_first(tab4t(:,:,1), 
  • trunk/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES/modlinktomodel.F

    r2715 r2731  
    2727C 
    2828c        external Agrif_InitValues 
    29 c        external Agrif_InitWorkspace 
    3029c        external Agrif_detect 
    3130C 
     31        external Agrif_InitWorkspace 
    3232        external Agrif_probdim_modtype_def 
    3333        external Agrif_clustering_def 
     34        external Agrif_comm_def 
    3435C     Interface                        
     36      INTERFACE 
     37      SUBROUTINE  Sub_Loop_Agrif_InvLoc(indloc,nprocloc,i, 
     38     &            indglob,njmppt,nimppt) 
     39      INTEGER :: indglob 
     40      INTEGER :: indloc 
     41      INTEGER :: nprocloc 
     42      INTEGER :: i 
     43 
     44      INTEGER, ALLOCATABLE, Dimension(:) :: njmppt 
     45      INTEGER, ALLOCATABLE, Dimension(:) :: nimppt 
     46      END SUBROUTINE 
     47      END INTERFACE 
    3548      Interface 
    3649         Subroutine Agrif_Set_numberofcells(Agrif_Gr) 
  • trunk/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES/modmpp.F

    r2715 r2731  
    6767 
    6868         CALL MPI_ALLGATHER(memberout1,1,MPI_LOGICAL,memberoutall, 
    69      &                  1,MPI_LOGICAL,MPI_COMM_WORLD,code) 
     69     &                  1,MPI_LOGICAL,MPI_COMM_AGRIF,code) 
    7070        ENDIF 
    7171         pttruetab2(:,Agrif_Procrank) = pttruetab(:,Agrif_Procrank) 
     
    207207 
    208208         CALL MPI_ALLGATHER(memberout1,1,MPI_LOGICAL,memberoutall, 
    209      &                  1,MPI_LOGICAL,MPI_COMM_WORLD,code) 
     209     &                  1,MPI_LOGICAL,MPI_COMM_AGRIF,code) 
    210210        ENDIF 
    211211         pttruetab2(:,Agrif_Procrank) = pttruetab(:,Agrif_Procrank) 
     
    356356C 
    357357            Call MPI_SEND(sendtoproc(k),1,MPI_LOGICAL,k,etiquette, 
    358      &                    MPI_COMM_WORLD,code) 
     358     &                    MPI_COMM_AGRIF,code) 
    359359C 
    360360            if (sendtoproc(k)) then 
     
    365365                Call MPI_SEND(iminmax_temp(:,:,k), 
    366366     &                        2*nbdim,MPI_INTEGER,k,etiquette, 
    367      &                        MPI_COMM_WORLD,code) 
     367     &                        MPI_COMM_AGRIF,code) 
    368368C 
    369369                datasize = 1 
     
    381381     &                        imin(1,k):imax(1,k)), 
    382382     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    383      &                        MPI_COMM_WORLD,code) 
     383     &                        MPI_COMM_AGRIF,code) 
    384384                CASE(2) 
    385385                   Call MPI_SEND(tempC%var%array2( 
     
    387387     &                        imin(2,k):imax(2,k)), 
    388388     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    389      &                        MPI_COMM_WORLD,code) 
     389     &                        MPI_COMM_AGRIF,code) 
    390390                CASE(3) 
    391391                 
     
    399399     &                        imin(4,k):imax(4,k)), 
    400400     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    401      &                        MPI_COMM_WORLD,code) 
     401     &                        MPI_COMM_AGRIF,code) 
    402402                CASE(5) 
    403403                   Call MPI_SEND(tempC%var%array5( 
     
    408408     &                        imin(5,k):imax(5,k)), 
    409409     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    410      &                        MPI_COMM_WORLD,code) 
     410     &                        MPI_COMM_AGRIF,code) 
    411411                CASE(6) 
    412412                   Call MPI_SEND(tempC%var%array6( 
     
    418418     &                        imin(6,k):imax(6,k)), 
    419419     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    420      &                        MPI_COMM_WORLD,code) 
     420     &                        MPI_COMM_AGRIF,code) 
    421421                END SELECT 
    422422C 
     
    432432C 
    433433            Call MPI_RECV(res,1,MPI_LOGICAL,k,etiquette, 
    434      &                    MPI_COMM_WORLD,statut,code) 
     434     &                    MPI_COMM_AGRIF,statut,code) 
    435435C 
    436436            recvfromproc(k) = res 
     
    441441                Call MPI_RECV(iminmax_temp(:,:,k), 
    442442     &                        2*nbdim,MPI_INTEGER,k,etiquette, 
    443      &                        MPI_COMM_WORLD,statut,code) 
     443     &                        MPI_COMM_AGRIF,statut,code) 
    444444 
    445445                imin_recv(:,k) = iminmax_temp(:,1,k) 
     
    462462              Call MPI_RECV(temprecv%var%array1, 
    463463     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    464      &               MPI_COMM_WORLD,statut,code) 
     464     &               MPI_COMM_AGRIF,statut,code) 
    465465            CASE(2) 
    466466              Call MPI_RECV(temprecv%var%array2, 
    467467     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    468      &               MPI_COMM_WORLD,statut,code) 
     468     &               MPI_COMM_AGRIF,statut,code) 
    469469            CASE(3) 
    470470              Call MPI_RECV(temprecv%var%array3, 
    471471     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    472      &               MPI_COMM_WORLD,statut,code) 
     472     &               MPI_COMM_AGRIF,statut,code) 
    473473 
    474474            CASE(4) 
    475475              Call MPI_RECV(temprecv%var%array4, 
    476476     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    477      &               MPI_COMM_WORLD,statut,code) 
     477     &               MPI_COMM_AGRIF,statut,code) 
    478478            CASE(5) 
    479479              Call MPI_RECV(temprecv%var%array5, 
    480480     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    481      &               MPI_COMM_WORLD,statut,code) 
     481     &               MPI_COMM_AGRIF,statut,code) 
    482482            CASE(6) 
    483483              Call MPI_RECV(temprecv%var%array6, 
    484484     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    485      &               MPI_COMM_WORLD,statut,code) 
     485     &               MPI_COMM_AGRIF,statut,code) 
    486486       END SELECT 
    487487                         
     
    503503             
    504504            Call MPI_SEND(sendtoproc(k),1,MPI_LOGICAL,k,etiquette, 
    505      &                    MPI_COMM_WORLD,code) 
     505     &                    MPI_COMM_AGRIF,code) 
    506506C 
    507507            if (sendtoproc(k)) then 
     
    512512                Call MPI_SEND(iminmax_temp(:,:,k), 
    513513     &                        2*nbdim,MPI_INTEGER,k,etiquette, 
    514      &                        MPI_COMM_WORLD,code) 
     514     &                        MPI_COMM_AGRIF,code) 
    515515C 
    516516                SELECT CASE(nbdim) 
     
    521521     &                        imin(1,k):imax(1,k)), 
    522522     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    523      &                        MPI_COMM_WORLD,code) 
     523     &                        MPI_COMM_AGRIF,code) 
    524524                CASE(2) 
    525525                datasize=SIZE(tempC%var%array2( 
     
    530530     &                        imin(2,k):imax(2,k)), 
    531531     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    532      &                        MPI_COMM_WORLD,code) 
     532     &                        MPI_COMM_AGRIF,code) 
    533533                CASE(3) 
    534534                datasize=SIZE(tempC%var%array3( 
     
    541541     &                        imin(3,k):imax(3,k)), 
    542542     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    543      &                        MPI_COMM_WORLD,code) 
     543     &                        MPI_COMM_AGRIF,code) 
    544544                CASE(4) 
    545545                datasize=SIZE(tempC%var%array4( 
     
    554554     &                        imin(4,k):imax(4,k)), 
    555555     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    556      &                        MPI_COMM_WORLD,code) 
     556     &                        MPI_COMM_AGRIF,code) 
    557557                CASE(5) 
    558558                datasize=SIZE(tempC%var%array5( 
     
    569569     &                        imin(5,k):imax(5,k)), 
    570570     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    571      &                        MPI_COMM_WORLD,code) 
     571     &                        MPI_COMM_AGRIF,code) 
    572572                CASE(6) 
    573573                datasize=SIZE(tempC%var%array6( 
     
    586586     &                        imin(6,k):imax(6,k)), 
    587587     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    588      &                        MPI_COMM_WORLD,code) 
     588     &                        MPI_COMM_AGRIF,code) 
    589589                END SELECT 
    590590C 
     
    600600C 
    601601            Call MPI_RECV(res,1,MPI_LOGICAL,k,etiquette, 
    602      &                    MPI_COMM_WORLD,statut,code) 
     602     &                    MPI_COMM_AGRIF,statut,code) 
    603603C 
    604604            recvfromproc(k) = res 
     
    609609                Call MPI_RECV(iminmax_temp(:,:,k), 
    610610     &                        2*nbdim,MPI_INTEGER,k,etiquette, 
    611      &                        MPI_COMM_WORLD,statut,code) 
     611     &                        MPI_COMM_AGRIF,statut,code) 
    612612 
    613613C                imin_recv(:,k) = iminmax_temp(:,1,k) 
     
    629629              Call MPI_RECV(temprecv%var%array1, 
    630630     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    631      &               MPI_COMM_WORLD,statut,code) 
     631     &               MPI_COMM_AGRIF,statut,code) 
    632632            CASE(2) 
    633633              datasize=SIZE(temprecv%var%array2) 
    634634              Call MPI_RECV(temprecv%var%array2, 
    635635     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    636      &               MPI_COMM_WORLD,statut,code) 
     636     &               MPI_COMM_AGRIF,statut,code) 
    637637            CASE(3) 
    638638              datasize=SIZE(temprecv%var%array3) 
    639639              Call MPI_RECV(temprecv%var%array3, 
    640640     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    641      &               MPI_COMM_WORLD,statut,code) 
     641     &               MPI_COMM_AGRIF,statut,code) 
    642642 
    643643            CASE(4) 
     
    645645              Call MPI_RECV(temprecv%var%array4, 
    646646     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    647      &               MPI_COMM_WORLD,statut,code) 
     647     &               MPI_COMM_AGRIF,statut,code) 
    648648            CASE(5) 
    649649              datasize=SIZE(temprecv%var%array5) 
    650650              Call MPI_RECV(temprecv%var%array5, 
    651651     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    652      &               MPI_COMM_WORLD,statut,code) 
     652     &               MPI_COMM_AGRIF,statut,code) 
    653653            CASE(6) 
    654654              datasize=SIZE(temprecv%var%array6) 
    655655              Call MPI_RECV(temprecv%var%array6, 
    656656     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    657      &               MPI_COMM_WORLD,statut,code) 
     657     &               MPI_COMM_AGRIF,statut,code) 
    658658          END SELECT 
    659659             
     
    693693C 
    694694            Call MPI_SEND(sendtoproc(k),1,MPI_LOGICAL,k,etiquette, 
    695      &                    MPI_COMM_WORLD,code) 
     695     &                    MPI_COMM_AGRIF,code) 
    696696C 
    697697            if (sendtoproc(k)) then 
     
    702702                Call MPI_SEND(iminmax_temp(:,:,k), 
    703703     &                        2*nbdim,MPI_INTEGER,k,etiquette, 
    704      &                        MPI_COMM_WORLD,code) 
     704     &                        MPI_COMM_AGRIF,code) 
    705705C 
    706706            endif 
     
    715715C 
    716716            Call MPI_RECV(res,1,MPI_LOGICAL,k,etiquette, 
    717      &                    MPI_COMM_WORLD,statut,code) 
     717     &                    MPI_COMM_AGRIF,statut,code) 
    718718C 
    719719            recvfromproc(k) = res 
     
    724724                Call MPI_RECV(iminmax_temp(:,:,k), 
    725725     &                        2*nbdim,MPI_INTEGER,k,etiquette, 
    726      &                        MPI_COMM_WORLD,statut,code) 
     726     &                        MPI_COMM_AGRIF,statut,code) 
    727727 
    728728                imin_recv(:,k) = iminmax_temp(:,1,k) 
     
    739739             
    740740            Call MPI_SEND(sendtoproc(k),1,MPI_LOGICAL,k,etiquette, 
    741      &                    MPI_COMM_WORLD,code) 
     741     &                    MPI_COMM_AGRIF,code) 
    742742C 
    743743            if (sendtoproc(k)) then 
     
    748748                Call MPI_SEND(iminmax_temp(:,:,k), 
    749749     &                        2*nbdim,MPI_INTEGER,k,etiquette, 
    750      &                        MPI_COMM_WORLD,code) 
     750     &                        MPI_COMM_AGRIF,code) 
    751751C 
    752752            endif 
     
    761761C 
    762762            Call MPI_RECV(res,1,MPI_LOGICAL,k,etiquette, 
    763      &                    MPI_COMM_WORLD,statut,code) 
     763     &                    MPI_COMM_AGRIF,statut,code) 
    764764C 
    765765            recvfromproc(k) = res 
     
    770770                Call MPI_RECV(iminmax_temp(:,:,k), 
    771771     &                        2*nbdim,MPI_INTEGER,k,etiquette, 
    772      &                        MPI_COMM_WORLD,statut,code) 
     772     &                        MPI_COMM_AGRIF,statut,code) 
    773773 
    774774                imin_recv(:,k) = iminmax_temp(:,1,k) 
     
    842842     &                        imin(1,k):imax(1,k)), 
    843843     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    844      &                        MPI_COMM_WORLD,code) 
     844     &                        MPI_COMM_AGRIF,code) 
    845845                CASE(2)                
    846846                   Call MPI_SEND(tempC%var%array2( 
     
    848848     &                        imin(2,k):imax(2,k)), 
    849849     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    850      &                        MPI_COMM_WORLD,code) 
     850     &                        MPI_COMM_AGRIF,code) 
    851851                CASE(3) 
    852852      
     
    860860     &                        imin(4,k):imax(4,k)), 
    861861     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    862      &                        MPI_COMM_WORLD,code) 
     862     &                        MPI_COMM_AGRIF,code) 
    863863                CASE(5) 
    864864                   Call MPI_SEND(tempC%var%array5( 
     
    869869     &                        imin(5,k):imax(5,k)), 
    870870     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    871      &                        MPI_COMM_WORLD,code) 
     871     &                        MPI_COMM_AGRIF,code) 
    872872                CASE(6) 
    873873                   Call MPI_SEND(tempC%var%array6( 
     
    879879     &                        imin(6,k):imax(6,k)), 
    880880     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    881      &                        MPI_COMM_WORLD,code) 
     881     &                        MPI_COMM_AGRIF,code) 
    882882                END SELECT 
    883883C 
     
    910910              Call MPI_RECV(temprecv%var%array1, 
    911911     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    912      &               MPI_COMM_WORLD,statut,code) 
     912     &               MPI_COMM_AGRIF,statut,code) 
    913913            CASE(2)            
    914914              Call MPI_RECV(temprecv%var%array2, 
    915915     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    916      &               MPI_COMM_WORLD,statut,code) 
     916     &               MPI_COMM_AGRIF,statut,code) 
    917917            CASE(3)        
    918918              Call MPI_RECV(temprecv%var%array3, 
    919919     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    920      &               MPI_COMM_WORLD,statut,code) 
     920     &               MPI_COMM_AGRIF,statut,code) 
    921921 
    922922            CASE(4) 
    923923              Call MPI_RECV(temprecv%var%array4, 
    924924     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    925      &               MPI_COMM_WORLD,statut,code) 
     925     &               MPI_COMM_AGRIF,statut,code) 
    926926            CASE(5) 
    927927              Call MPI_RECV(temprecv%var%array5, 
    928928     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    929      &               MPI_COMM_WORLD,statut,code) 
     929     &               MPI_COMM_AGRIF,statut,code) 
    930930            CASE(6) 
    931931              Call MPI_RECV(temprecv%var%array6, 
    932932     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    933      &               MPI_COMM_WORLD,statut,code) 
     933     &               MPI_COMM_AGRIF,statut,code) 
    934934       END SELECT 
    935935                         
     
    958958     &                        imin(1,k):imax(1,k)), 
    959959     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    960      &                        MPI_COMM_WORLD,code) 
     960     &                        MPI_COMM_AGRIF,code) 
    961961                CASE(2)                 
    962962                datasize=SIZE(tempC%var%array2( 
     
    967967     &                        imin(2,k):imax(2,k)), 
    968968     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    969      &                        MPI_COMM_WORLD,code) 
     969     &                        MPI_COMM_AGRIF,code) 
    970970                CASE(3) 
    971971                datasize=SIZE(tempC%var%array3( 
     
    978978     &                        imin(3,k):imax(3,k)), 
    979979     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    980      &                        MPI_COMM_WORLD,code) 
     980     &                        MPI_COMM_AGRIF,code) 
    981981                CASE(4) 
    982982                datasize=SIZE(tempC%var%array4( 
     
    991991     &                        imin(4,k):imax(4,k)), 
    992992     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    993      &                        MPI_COMM_WORLD,code) 
     993     &                        MPI_COMM_AGRIF,code) 
    994994                CASE(5) 
    995995                datasize=SIZE(tempC%var%array5( 
     
    10061006     &                        imin(5,k):imax(5,k)), 
    10071007     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    1008      &                        MPI_COMM_WORLD,code) 
     1008     &                        MPI_COMM_AGRIF,code) 
    10091009                CASE(6) 
    10101010                datasize=SIZE(tempC%var%array6( 
     
    10231023     &                        imin(6,k):imax(6,k)), 
    10241024     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    1025      &                        MPI_COMM_WORLD,code) 
     1025     &                        MPI_COMM_AGRIF,code) 
    10261026                END SELECT 
    10271027C 
     
    10471047              Call MPI_RECV(temprecv%var%array1, 
    10481048     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    1049      &               MPI_COMM_WORLD,statut,code) 
     1049     &               MPI_COMM_AGRIF,statut,code) 
    10501050            CASE(2)            
    10511051              datasize=SIZE(temprecv%var%array2) 
    10521052              Call MPI_RECV(temprecv%var%array2, 
    10531053     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    1054      &               MPI_COMM_WORLD,statut,code) 
     1054     &               MPI_COMM_AGRIF,statut,code) 
    10551055            CASE(3)            
    10561056              datasize=SIZE(temprecv%var%array3) 
    10571057              Call MPI_RECV(temprecv%var%array3, 
    10581058     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    1059      &               MPI_COMM_WORLD,statut,code) 
     1059     &               MPI_COMM_AGRIF,statut,code) 
    10601060 
    10611061            CASE(4) 
     
    10631063              Call MPI_RECV(temprecv%var%array4, 
    10641064     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    1065      &               MPI_COMM_WORLD,statut,code) 
     1065     &               MPI_COMM_AGRIF,statut,code) 
    10661066            CASE(5) 
    10671067              datasize=SIZE(temprecv%var%array5) 
    10681068              Call MPI_RECV(temprecv%var%array5, 
    10691069     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    1070      &               MPI_COMM_WORLD,statut,code) 
     1070     &               MPI_COMM_AGRIF,statut,code) 
    10711071            CASE(6) 
    10721072              datasize=SIZE(temprecv%var%array6) 
    10731073              Call MPI_RECV(temprecv%var%array6, 
    10741074     &               datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    1075      &               MPI_COMM_WORLD,statut,code) 
     1075     &               MPI_COMM_AGRIF,statut,code) 
    10761076          END SELECT 
    10771077             
     
    11081108     &                        imin(3):imax(3)), 
    11091109     &                        datasize,MPI_DOUBLE_PRECISION,k,etiquette, 
    1110      &                        MPI_COMM_WORLD,code) 
     1110     &                        MPI_COMM_AGRIF,code) 
    11111111      
    11121112         End Subroutine Agrif_Send_3Darray 
  • trunk/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES/modtypes.F

    r2715 r2731  
    3636C     Maximum number of grids of the hierarchy 
    3737      INTEGER, PARAMETER :: Agrif_NbMaxGrids = 10 
    38                    
     38C     MPI Communicator 
     39      INTEGER :: MPI_COMM_AGRIF 
    3940C 
    4041C     ************************************************************************** 
     
    422423      INTEGER :: Agrif_Nbprocs  ! Number of processors 
    423424      INTEGER :: Agrif_ProcRank ! Rank of the current processor  
    424       INTEGER :: Agrif_Group    ! Group associated to MPI_COMM_WORLD 
     425      INTEGER :: Agrif_Group    ! Group associated to MPI_COMM_AGRIF 
    425426      INTEGER :: Agrif_MPIPREC 
    426427#endif 
  • trunk/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES/modupdate.F

    r2715 r2731  
    744744       
    745745      CALL MPI_ALLREDUCE(iminmaxg,lubglob,2*nbdim,MPI_INTEGER,MPI_MIN, 
    746      &                     MPI_COMM_WORLD,code) 
     746     &                     MPI_COMM_AGRIF,code) 
    747747 
    748748      lubglob(1:nbdim,2) = - lubglob(1:nbdim,2)       
     
    910910       
    911911      CALL MPI_ALLREDUCE(iminmaxg,lubglob,2*nbdim,MPI_INTEGER,MPI_MIN, 
    912      &                     MPI_COMM_WORLD,code)   
     912     &                     MPI_COMM_AGRIF,code)   
    913913      
    914914      lubglob(1:nbdim,2) = - lubglob(1:nbdim,2)       
     
    12701270C 
    12711271      Call MPI_ALLGATHER(tab3,4*nbdim,MPI_INTEGER,tab4,4*nbdim, 
    1272      &                   MPI_INTEGER,MPI_COMM_WORLD,code) 
     1272     &                   MPI_INTEGER,MPI_COMM_AGRIF,code) 
    12731273 
    12741274      IF (.not.associated(tempCextend%var)) Allocate(tempCextend%var) 
     
    12831283      memberin1(1) = memberin 
    12841284      CALL MPI_ALLGATHER(memberin1,1,MPI_LOGICAL,memberinall, 
    1285      &                  1,MPI_LOGICAL,MPI_COMM_WORLD,code) 
     1285     &                  1,MPI_LOGICAL,MPI_COMM_AGRIF,code) 
    12861286  
    12871287       Call Get_External_Data_first(tab4t(:,:,1), 
     
    14021402C 
    14031403      Call MPI_ALLGATHER(tab3,4*nbdim,MPI_INTEGER,tab4,4*nbdim, 
    1404      &                   MPI_INTEGER,MPI_COMM_WORLD,code) 
     1404     &                   MPI_INTEGER,MPI_COMM_AGRIF,code) 
    14051405 
    14061406      IF (.not.associated(tempPextend%var)) Allocate(tempPextend%var) 
     
    14151415      memberin1(1) = member 
    14161416      CALL MPI_ALLGATHER(memberin1,1,MPI_LOGICAL,memberinall2, 
    1417      &                  1,MPI_LOGICAL,MPI_COMM_WORLD,code) 
     1417     &                  1,MPI_LOGICAL,MPI_COMM_AGRIF,code) 
    14181418  
    14191419      Call Get_External_Data_first(tab5t(:,:,1), 
  • trunk/NEMOGCM/EXTERNAL/AGRIF/AGRIF_FILES/modutil.F

    r2715 r2731  
    6363C 
    6464#ifdef key_mpp_mpi 
    65       Integer      :: code 
    6665      INCLUDE 'mpif.h' 
    67 C 
    68 C 
     66      Integer      :: code, ierr 
     67      Logical      :: mpi_was_called 
     68C 
     69C 
     70      Call Agrif_comm_def(MPI_COMM_AGRIF) 
     71 
     72      CALL mpi_initialized ( mpi_was_called, code ) 
     73      IF( code /= MPI_SUCCESS ) THEN 
     74         WRITE(*, *) ': Error in routine mpi_initialized' 
     75         CALL mpi_abort( mpi_comm_world, code, ierr ) 
     76      ENDIF 
     77 
     78      IF( .NOT. mpi_was_called ) THEN 
     79         CALL mpi_comm_dup( mpi_comm_world, MPI_COMM_AGRIF, code) 
     80         IF( code /= MPI_SUCCESS ) THEN 
     81            WRITE(*, *) ' Agrif_Step: Error in routine mpi_comm_dup' 
     82            CALL mpi_abort( mpi_comm_world, code, ierr ) 
     83         ENDIF 
     84      ENDIF 
     85 
    6986      If (Agrif_Mygrid % ngridstep == 0) Then 
    70           Call MPI_COMM_SIZE(MPI_COMM_WORLD,Agrif_Nbprocs,code) 
    71           Call MPI_COMM_RANK(MPI_COMM_WORLD,Agrif_ProcRank,code) 
    72           Call MPI_COMM_GROUP(MPI_COMM_WORLD,Agrif_Group,code) 
     87          Call MPI_COMM_SIZE(MPI_COMM_AGRIF,Agrif_Nbprocs,code) 
     88          Call MPI_COMM_RANK(MPI_COMM_AGRIF,Agrif_ProcRank,code) 
     89          Call MPI_COMM_GROUP(MPI_COMM_AGRIF,Agrif_Group,code) 
    7390      endif 
    7491#endif 
  • trunk/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90

    r2715 r2731  
    248248      WRITE(ldtxt(ii),*) '      size in bytes of exported buffer   nn_buffer   = ', nn_buffer     ;   ii = ii + 1 
    249249 
     250#if defined key_agrif 
     251      IF( .NOT. Agrif_Root() ) THEN 
     252         jpni  = Agrif_Parent(jpni )  
     253         jpnj  = Agrif_Parent(jpnj ) 
     254         jpnij = Agrif_Parent(jpnij) 
     255      ENDIF 
     256#endif 
     257 
    250258      IF(jpnij < 1)THEN 
    251259         ! If jpnij is not specified in namelist then we calculate it - this 
Note: See TracChangeset for help on using the changeset viewer.