Changeset 1793


Ignore:
Timestamp:
2010-01-06T20:20:12+01:00 (12 years ago)
Author:
rblod
Message:

Adaptation to use iomput with AGRIF, see ticket #630

Location:
trunk
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/AGRIF/AGRIF_FILES/modbc.F

    r1200 r1793  
    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/AGRIF/AGRIF_FILES/modinterp.F

    r1200 r1793  
    894894C 
    895895      Call MPI_ALLGATHER(tab3,4*nbdim,MPI_INTEGER,tab4,4*nbdim, 
    896      &                   MPI_INTEGER,MPI_COMM_WORLD,code) 
     896     &                   MPI_INTEGER,MPI_COMM_AGRIF,code) 
    897897 
    898898      IF (.not.associated(tempPextend%var)) Allocate(tempPextend%var) 
     
    908908      memberin1(1) = memberin 
    909909      CALL MPI_ALLGATHER(memberin1,1,MPI_LOGICAL,memberinall, 
    910      &                  1,MPI_LOGICAL,MPI_COMM_WORLD,code) 
     910     &                  1,MPI_LOGICAL,MPI_COMM_AGRIF,code) 
    911911 
    912912       Call Get_External_Data_first(tab4t(:,:,1), 
  • trunk/AGRIF/AGRIF_FILES/modlinktomodel.F

    r662 r1793  
    3232        external Agrif_probdim_modtype_def 
    3333        external Agrif_clustering_def 
     34        external Agrif_comm_def 
    3435C     Interface                        
    3536      Interface 
  • trunk/AGRIF/AGRIF_FILES/modmpp.F

    r898 r1793  
    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/AGRIF/AGRIF_FILES/modtypes.F

    r1200 r1793  
    3737      INTEGER, PARAMETER :: Agrif_NbMaxGrids = 10 
    3838                   
     39C     MPI Communicator 
     40      INTEGER :: mpi_comm_agrif 
    3941C 
    4042C     ************************************************************************** 
     
    409411      INTEGER :: Agrif_Nbprocs  ! Number of processors 
    410412      INTEGER :: Agrif_ProcRank ! Rank of the current processor  
    411       INTEGER :: Agrif_Group    ! Group associated to MPI_COMM_WORLD 
     413      INTEGER :: Agrif_Group    ! Group associated to MPI_COMM_AGRIF 
    412414      INTEGER :: Agrif_MPIPREC 
    413415#endif 
  • trunk/AGRIF/AGRIF_FILES/modupdate.F

    r1200 r1793  
    757757       
    758758      CALL MPI_ALLREDUCE(iminmaxg,lubglob,2*nbdim,MPI_INTEGER,MPI_MIN, 
    759      &                     MPI_COMM_WORLD,code) 
     759     &                     MPI_COMM_AGRIF,code) 
    760760 
    761761      lubglob(1:nbdim,2) = - lubglob(1:nbdim,2)       
     
    925925       
    926926      CALL MPI_ALLREDUCE(iminmaxg,lubglob,2*nbdim,MPI_INTEGER,MPI_MIN, 
    927      &                     MPI_COMM_WORLD,code)   
     927     &                     MPI_COMM_AGRIF,code)   
    928928      
    929929      lubglob(1:nbdim,2) = - lubglob(1:nbdim,2)       
     
    12871287C 
    12881288      Call MPI_ALLGATHER(tab3,4*nbdim,MPI_INTEGER,tab4,4*nbdim, 
    1289      &                   MPI_INTEGER,MPI_COMM_WORLD,code) 
     1289     &                   MPI_INTEGER,MPI_COMM_AGRIF,code) 
    12901290 
    12911291      IF (.not.associated(tempCextend%var)) Allocate(tempCextend%var) 
     
    13001300      memberin1(1) = memberin 
    13011301      CALL MPI_ALLGATHER(memberin1,1,MPI_LOGICAL,memberinall, 
    1302      &                  1,MPI_LOGICAL,MPI_COMM_WORLD,code) 
     1302     &                  1,MPI_LOGICAL,MPI_COMM_AGRIF,code) 
    13031303  
    13041304       Call Get_External_Data_first(tab4t(:,:,1), 
     
    14191419C 
    14201420      Call MPI_ALLGATHER(tab3,4*nbdim,MPI_INTEGER,tab4,4*nbdim, 
    1421      &                   MPI_INTEGER,MPI_COMM_WORLD,code) 
     1421     &                   MPI_INTEGER,MPI_COMM_AGRIF,code) 
    14221422 
    14231423      IF (.not.associated(tempPextend%var)) Allocate(tempPextend%var) 
     
    14321432      memberin1(1) = member 
    14331433      CALL MPI_ALLGATHER(memberin1,1,MPI_LOGICAL,memberinall2, 
    1434      &                  1,MPI_LOGICAL,MPI_COMM_WORLD,code) 
     1434     &                  1,MPI_LOGICAL,MPI_COMM_AGRIF,code) 
    14351435  
    14361436      Call Get_External_Data_first(tab5t(:,:,1), 
  • trunk/AGRIF/AGRIF_FILES/modutil.F

    r662 r1793  
    6363C 
    6464#ifdef AGRIF_MPI 
    65       Integer      :: code 
     65      Logical      :: mpi_was_called 
     66      Integer      :: code, ierr 
    6667#include "mpif.h" 
    6768C 
    6869C 
     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/CONFIG/ORCA2_LIM/EXP00/iodef.xml

    r1772 r1793  
    560560  </context> 
    561561   
     562  <context id="1_nemo"> 
     563     
     564    <!--  
     565============================================================================================================ 
     566=                                  definition of all existing variables                                    = 
     567=                                            DO NOT CHANGE                                                 = 
     568============================================================================================================ 
     569    --> 
     570     
     571    <field_definition level="1" prec="4" operation="ave(X)" enabled=".TRUE."> <!-- time step automaticaly defined --> 
     572 
     573      <!-- T grid --> 
     574       
     575      <group id="grid_T" axis_ref="none" grid_ref="grid_T"> 
     576   <field id="toce"         description="temperature"                               unit="degC" axis_ref="deptht"   /> 
     577         <field id="soce"         description="salinity"                                  unit="psu"  axis_ref="deptht"   /> 
     578   <field id="sst"          description="sea surface temperature"                   unit="degC"                     /> 
     579   <field id="sst2"         description="square of sea surface temperature"         unit="degC2"                    /> 
     580   <field id="|sstgrad|"    description="module of sst gradient"                    unit="degC/m"                   /> 
     581   <field id="|sstgrad|2"   description="square of module of sst gradient"          unit="degC2/m2"                 /> 
     582   <field id="sss"          description="sea surface salinity"                      unit="psu"                      /> 
     583   <field id="sss2"         description="square of sea surface salinity"            unit="psu2"                     /> 
     584   <field id="ssh"          description="sea surface height"                        unit="m"                        /> 
     585   <field id="ssh2"         description="square of sea surface height"              unit="m2"                       /> 
     586   <field id="mldkz5"       description="mixing layer depth (Turbocline)"           unit="m"                        /> 
     587   <field id="mldr10_1"     description="Mixed Layer Depth 0.01 ref.10m"            unit="m"                        /> 
     588         <field id="rhop"         description="potential density (sigma0)"                unit="kg/m3" axis_ref="deptht"  /> 
     589   <!-- next variables available with key_diahth --> 
     590   <field id="mlddzt"       description="Thermocline Depth (max dT/dz)"             unit="m"                        /> 
     591   <field id="mldr10_3"     description="Mixed Layer Depth dr=0.03 (ref.10m)"       unit="m"                        /> 
     592   <field id="mldr0_1"      description="Mixed Layer Depth dr=0.01 (ref.surf)"      unit="m"                        /> 
     593   <field id="mldr0_3"      description="Mixed Layer Depth dr=0.03 (ref.surf)"      unit="m"                        /> 
     594   <field id="mld|dt|"      description="Mixed Layer Depth |dt|=0.2 (ref.10m)"      unit="m"                        /> 
     595   <field id="topthdep"     description="Top of the thermocline dt=-0.2 (ref.10m)"  unit="m"                        /> 
     596   <field id="pycndep"      description="Pycnocline depth dr~dt=-0.2 (ref.10m)"     unit="m"                        /> 
     597   <field id="BLT"          description="Barrier Layer Thickness"                   unit="m"                        /> 
     598   <field id="tinv"         description="Max of vertical invertion of temperature"  unit="degC"                     /> 
     599   <field id="depti"        description="Depth of max. vert. inv. of temperature"   unit="m"                        /> 
     600        <field id="20d"          description="Depth of 20C isotherm"                     unit="m"                        /> 
     601   <field id="28d"          description="Depth of 28C isotherm"                     unit="m"                        /> 
     602   <field id="hc300"        description="Heat content 300 m"                        unit="W"                        /> 
     603   <!-- variables available with key_diaar5 --> 
     604   <field id="botpres"      description="Pressure at sea floor"                     unit="dbar"                     /> 
     605   <field id="cellthc"      description="Cell thickness"                            unit="m"     axis_ref="deptht"  /> 
     606     </group> 
     607 
     608      <!-- SBC --> 
     609       
     610      <group id="SBC" axis_ref="none" grid_ref="grid_T" > <!-- time step automaticaly defined based on nn_fsbc --> 
     611 
     612   <field id="emp"          description="Net Upward Water Flux"                                        unit="kg/m2/s"  /> 
     613   <field id="emps"         description="concentration/dilution water flux"                            unit="kg/m2/s"  /> 
     614   <field id="snowpre"      description="Snow precipitation"                                           unit="kg/m2/s"  /> 
     615   <field id="runoffs"      description="River Runoffs"                                                unit="Kg/m2/s"  /> 
     616 
     617   <field id="qns+qsr"      description="Net Downward Heat Flux"                                       unit="W/m2"     /> 
     618   <field id="qns"          description="non solar Downward Heat Flux"                                 unit="W/m2"     /> 
     619   <field id="qsr"          description="Shortwave Radiation"                                          unit="W/m2"     /> 
     620   <field id="qsr3d"        description="Shortwave Radiation 3D distribution"        axis_ref="deptht" unit="W/m2"     /> 
     621   <field id="qrp"          description="Surface Heat Flux: Damping"                                   unit="W/m2"     /> 
     622   <field id="erp"          description="Surface Water Flux: Damping"                                  unit="Kg/m2/s"  /> 
     623   <field id="taum"         description="wind stress module"                                           unit="N/m2"     /> 
     624   <field id="wspd"         description="Wind speed module at 10 m"                                    unit="m/s"      /> 
     625    
     626   <!-- *_oce variables available with ln_blk_clio or ln_blk_core --> 
     627   <field id="qns_oce"      description="Non solar Downward Heat Flux over open ocean"                 unit="W/m2"     /> 
     628   <field id="qlw_oce"      description="Longwave Downward Heat Flux over open ocean"                  unit="W/m2"     /> 
     629   <field id="qsb_oce"      description="Sensible Downward Heat Flux over open ocean"                  unit="W/m2"     /> 
     630   <field id="qla_oce"      description="Latent Downward Heat Flux over open ocean"                    unit="W/m2"     /> 
     631   <field id="taum_oce"     description="wind stress module over open ocean"                           unit="N/m2"     /> 
     632 
     633   <field id="ice_cover"    description="Ice fraction"                                                 unit="1"        /> 
     634 
     635   <field id="ioceflxb"     description="Oceanic flux at the ice base"                                 unit="W/m2"     /> 
     636   <field id="qsr_ai_cea"   description="Air-Ice downward solar heat flux (cell average)"              unit="W/m2"     /> 
     637   <field id="qns_ai_cea"   description="Air-Ice downward non-solar heat flux (cell average)"          unit="W/m2"     /> 
     638   <field id="qla_ai_cea"   description="Air-Ice downward Latent heat flux (cell average)"             unit="W/m2"     /> 
     639    
     640   <field id="qsr_io_cea"   description="Ice-Oce downward solar heat flux (cell average)"              unit="W/m2"     /> 
     641   <field id="qns_io_cea"   description="Ice-Oce downward non-solar heat flux (cell average)"          unit="W/m2"     /> 
     642    
     643   <field id="snowthic_cea" description="Snow thickness (cell average)"                                unit="m"        /> 
     644   <field id="icethic_cea"  description="Ice thickness (cell average)"                                 unit="m"        /> 
     645   <field id="iceprod_cea"  description="Ice production (cell average)"                                unit="m/s"      /> 
     646    
     647   <field id="ice_pres"     description="Ice presence"                                                 unit="-"        /> 
     648   <field id="ist_cea"      description="Ice surface temperature (cell average)"                       unit="degC"     /> 
     649   <field id="ist_ipa"      description="Ice surface temperature (ice presence average)"               unit="degC"     />       
     650   <field id="uice_ipa"     description="Ice velocity along i-axis at I-point (ice presence average)"  unit="m/s"      />       
     651   <field id="vice_ipa"     description="Ice velocity along j-axis at I-point (ice presence average)"  unit="m/s"      />       
     652    
     653   <field id="utau_ice"     description="Wind stress along i-axis over the ice at i-point"             unit="N/m2"     /> 
     654   <field id="vtau_ice"     description="Wind stress along j-axis over the ice at i-point"             unit="N/m2"     /> 
     655    
     656   <field id="u_imasstr"    description="Sea-ice mass transport along i-axis"                          unit="kg/s"     /> 
     657   <field id="v_imasstr"    description="Sea-ice mass transport along j-axis"                          unit="kg/s"     /> 
     658 
     659   <!-- available key_coupled --> 
     660   <field id="snow_ao_cea"  description="Snow over ice-free ocean (cell average)"                      unit="kg/m2/s"  /> 
     661   <field id="snow_ai_cea"  description="Snow over sea-ice (cell average)"                             unit="kg/m2/s"  /> 
     662   <field id="subl_ai_cea"  description="Sublimation over sea-ice (cell average)"                      unit="kg/m2/s"  /> 
     663   <field id="icealb_cea"   description="Ice albedo (cell average)"                                    unit="1"        /> 
     664   <field id="calving"      description="Calving"                                                      unit="kg/m2/s"  /> 
     665   <!-- available if key_coupled + conservative method --> 
     666   <field id="rain"         description="Liquid precipitation"                                         unit="Kg/m2/s"  /> 
     667   <field id="evap_ao_cea"  description="Evaporation over ice-free ocean (cell average)"               unit="kg/m2/s"  /> 
     668   <!-- variables available with key_diaar5 --> 
     669   <field id="isnwmlt_cea"   description="Snow over Ice melting (cell average)"                        unit="kg/m2/s"  /> 
     670   <field id="fsal_virt_cea" description="Virtual salt flux due to ice formation (cell average)"       unit="kg/m2/s"  /> 
     671   <field id="fsal_real_cea" description="Real salt flux due to ice formation (cell average)"          unit="kg/m2/s"  /> 
     672   <field id="hflx_rain_cea" description="heat flux due to rainfall"                                   unit="W/m2"     /> 
     673   <field id="hflx_evap_cea" description="heat flux due to evaporation"                                unit="W/m2"     /> 
     674   <field id="hflx_snow_cea" description="heat flux due to snow falling over ice-free ocean"           unit="W/m2"     /> 
     675   <field id="hflx_ice_cea"  description="heat flux due to ice thermodynamics"                         unit="W/m2"     /> 
     676   <field id="hflx_rnf_cea"  description="heat flux due to runoffs"                                    unit="W/m2"     /> 
     677   <field id="hflx_cal_cea"  description="heat flux due to calving"                                    unit="W/m2"     /> 
     678   <field id="bicemel_cea"  description="Rate of Melt at Sea Ice Base (cell average)"                  unit="kg/m2/s"  /> 
     679   <field id="licepro_cea"  description="Lateral Sea Ice Growth Rate (cell average)"                   unit="kg/m2/s"  /> 
     680   <field id="snowmel_cea"  description="Snow Melt Rate (cell average)"                                unit="kg/m2/s"  /> 
     681   <field id="sntoice_cea"  description="Snow-Ice Formation Rate (cell average)"                       unit="kg/m2/s"  /> 
     682   <field id="ticemel_cea"  description="Rate of Melt at Upper Surface of Sea Ice (cell average)"      unit="kg/m2/s"  /> 
     683 
     684      </group> 
     685 
     686      <!-- U grid --> 
     687       
     688      <group id="grid_U"  axis_ref="depthu" grid_ref="grid_U"> 
     689   <field id="utau"         description="Wind Stress along i-axis"                    unit="N/m2" axis_ref="none" /> 
     690   <field id="uoce"         description="ocean current along i-axis"                  unit="m/s"                  /> 
     691   <field id="uoce_eff"     description="Effective ocean current along i-axis"        unit="m/s"                  /> 
     692   <!-- uoce_eiv: available with key_traldf_eiv and key_diaeiv --> 
     693   <field id="uoce_eiv"     description="EIV ocean current along i-axis"              unit="m/s"                  /> 
     694   <!-- uoce_eiv: available with key_trabbl_adv --> 
     695   <field id="uoce_bbl"     description="BBL ocean current along i-axis"              unit="m/s"                  /> 
     696   <!-- variables available with key_diaar5 --> 
     697   <field id="u_masstr"     description="ocean eulerian mass transport along i-axis"  unit="kg/s"                 /> 
     698   <field id="u_heattr"     description="ocean eulerian heat transport along i-axis"  unit="W"    axis_ref="none" /> 
     699   <field id="ueiv_heattr"  description="ocean bolus heat transport along i-axis"     unit="W"    axis_ref="none" /> 
     700   <field id="udiff_heattr" description="ocean diffusion heat transport along i-axis" unit="W"    axis_ref="none" /> 
     701     </group> 
     702       
     703      <!-- V grid --> 
     704       
     705      <group id="grid_V"  axis_ref="depthv" grid_ref="grid_V"> 
     706   <field id="vtau"         description="Wind Stress along j-axis"                    unit="N/m2" axis_ref="none" /> 
     707   <field id="voce"         description="ocean current along j-axis"                  unit="m/s"                  /> 
     708   <field id="voce_eff"     description="Effective ocean current along j-axis"        unit="m/s"                  /> 
     709   <!-- voce_eiv: available with key_traldf_eiv and key_diaeiv --> 
     710   <field id="voce_eiv"     description="EIV ocean current along j-axis"              unit="m/s"                  /> 
     711   <!-- voce_eiv: available with key_trabbl_adv --> 
     712   <field id="voce_bbl"     description="BBL ocean current along j-axis"              unit="m/s"                  /> 
     713   <!-- variables available with key_diaar5 --> 
     714   <field id="v_masstr"     description="ocean eulerian mass transport along j-axis"  unit="kg/s"                 /> 
     715   <field id="v_heattr"     description="ocean eulerian heat transport along j-axis"  unit="W"    axis_ref="none" /> 
     716   <field id="veiv_heattr"  description="ocean bolus heat transport along j-axis"     unit="W"    axis_ref="none" /> 
     717   <field id="vdiff_heattr" description="ocean diffusion heat transport along j-axis" unit="W"    axis_ref="none" /> 
     718      </group> 
     719       
     720      <!-- W grid --> 
     721       
     722      <group id="grid_W"  axis_ref="depthw" grid_ref="grid_W"> 
     723   <field id="woce"         description="ocean vertical velocity"                     unit="m/s"                  /> 
     724   <field id="woce_eff"     description="effective ocean vertical velocity"           unit="m/s"                  /> 
     725   <!-- woce_eiv: available with key_traldf_eiv and key_diaeiv --> 
     726   <field id="woce_eiv"     description="EIV ocean vertical velocity"                 unit="m/s"                  /> 
     727   <!-- woce_eiv: available with key_trabbl_adv --> 
     728   <field id="woce_bbl"     description="BBL ocean vertical velocity"                 unit="m/s"                  /> 
     729   <field id="avt"          description="vertical eddy diffusivity"                   unit="m2/s"                 /> 
     730   <field id="avm"          description="vertical eddy viscosity"                     unit="m2/s"                 /> 
     731   <!-- avs: available with key_zdfddm --> 
     732   <field id="avs"          description="salt vertical eddy diffusivity"              unit="m2/s"                 /> 
     733   <!-- avt_evd and avm_evd: available with ln_zdfevd --> 
     734   <field id="avt_evd"      description="enhanced vertical diffusivity"               unit="m2/s"                 /> 
     735   <field id="avm_evd"      description="enhanced vertical viscosity"                 unit="m2/s"                 /> 
     736   <!-- aht2d and  aht2d_eiv: available with key_traldf_eiv and key_traldf_c2d --> 
     737   <field id="aht2d"        description="lateral eddy diffusivity"                    unit="m2/s" axis_ref="none" /> 
     738   <field id="aht2d_eiv"    description="EIV lateral eddy diffusivity"                unit="m2/s" axis_ref="none" /> 
     739   <!-- avt_tide: available with key_zdftmx --> 
     740   <field id="av_tide"      description="tidal vertical diffusivity"                  unit="m2/s"                 /> 
     741   <!-- variables available with key_diaar5 -->    
     742   <field id="w_masstr"     description="vertical mass trasport"                      unit="kg/s"                 /> 
     743   <field id="w_masstr2"    description="square of vertical mass trasport"            unit="kg2/s2"               /> 
     744      </group> 
     745           
     746      <!-- scalar --> 
     747       
     748      <!-- variables available with key_diaar5 --> 
     749      <group id="scalar" axis_ref="none" grid_ref="scalarpoint" zoom_ref="1point" > 
     750   <field id="voltot"     description="global mean volume"                         unit="m3"   /> 
     751   <field id="sshtot"     description="global mean ssh"                            unit="m"    /> 
     752   <field id="sshsteric"  description="global mean ssh steric"                     unit="m"    /> 
     753   <field id="sshthster"  description="global mean ssh thermosteric"               unit="m"    /> 
     754   <field id="masstot"    description="global mean mass"                           unit="kg"   /> 
     755   <field id="temptot"    description="global mean temperature"                    unit="degC" /> 
     756   <field id="saltot"     description="global mean salinity"                       unit="psu"  /> 
     757   <field id="fram_trans" description="Sea Ice Mass Transport Through Fram Strait" unit="kg/s" /> 
     758      </group> 
     759 
     760    </field_definition> 
     761     
     762    <!--  
     763============================================================================================================ 
     764=                                           output files definition                                        = 
     765=                                            Define your own files                                         = 
     766=                                         put the variables you want...                                    = 
     767============================================================================================================ 
     768    --> 
     769     
     770    <file_definition > 
     771 
     772      <group id="1h" output_freq="3600"   output_level="10" enabled=".TRUE.">                      <!-- 1h files --> 
     773      </group> 
     774       
     775      <group id="2h" output_freq="7200"   output_level="10" enabled=".TRUE.">                      <!-- 2h files --> 
     776      </group> 
     777       
     778      <group id="3h" output_freq="10800"  output_level="10" enabled=".TRUE.">                      <!-- 3h files --> 
     779      </group> 
     780       
     781      <group id="4h" output_freq="14400"  output_level="10" enabled=".TRUE.">                      <!-- 4h files --> 
     782      </group> 
     783       
     784      <group id="6h" output_freq="21600"  output_level="10" enabled=".TRUE.">                      <!-- 6h files --> 
     785      </group> 
     786       
     787      <group id="1d" output_freq="86400"  output_level="10" enabled=".TRUE.">                      <!-- 1d files --> 
     788     <!-- global file with different operations on data   --> 
     789    <file id="1d_grid_T" name="auto" description="ocean T grid variables" > 
     790       <field ref="sst"    name="sst_1d_ave"                       />     <!-- mean --> 
     791       <field ref="sst"    name="sst_1d_max"  operation="t_max(X)" />     <!-- max --> 
     792     </file> 
     793      </group> 
     794       
     795      <group id="3d" output_freq="259200" output_level="10" enabled=".TRUE.">                      <!-- 3d files --> 
     796      </group> 
     797       
     798      <group id="5d" output_freq="432000" output_level="10" enabled=".TRUE.">                      <!-- 5d files --> 
     799 
     800   <file id="5d_grid_T" name="auto" description="ocean T grid variables" > 
     801     <field ref="toce"         name="votemper"  /> 
     802     <field ref="soce"         name="vosaline"  /> 
     803     <field ref="sst"          name="sosstsst"  /> 
     804     <field ref="sss"          name="sosaline"  /> 
     805     <field ref="ssh"          name="sossheig"  /> 
     806     <field ref="emp"          name="sowaflup"  /> 
     807     <field ref="qsr"          name="soshfldo"  /> 
     808     <field ref="emps"         name="sowaflcd"  /> 
     809     <field ref="qns+qsr"      name="sohefldo"  /> 
     810     <field ref="mldr10_1"     name="somxl010"  /> 
     811     <field ref="mldkz5"       name="somixhgt"  /> 
     812     <field ref="ice_cover"    name="soicecov"  /> 
     813     <field ref="wspd"         name="sowindsp"  /> 
     814     <field ref="qrp"          name="sohefldp"  /> 
     815     <field ref="erp"          name="sowafldp"  /> 
     816     <field ref="mlddzt"       name="sothedep"  /> 
     817     <field ref="20d"          name="so20chgt"  /> 
     818     <field ref="28d"          name="so28chgt"  /> 
     819     <field ref="hc300"        name="sohtc300"  /> 
     820     <field ref="ist_ipa"      name="soicetem"  /> 
     821     <field ref="icealb_cea"   name="soicealb"  />    
     822   </file> 
     823    
     824   <file id="5d_grid_U" name="auto" description="ocean U grid variables" > 
     825     <field ref="uoce"         name="vozocrtx"  /> 
     826     <field ref="utau"         name="sozotaux"  /> 
     827   </file> 
     828    
     829   <file id="5d_grid_V" name="auto" description="ocean V grid variables" > 
     830     <field ref="voce"         name="vomecrty"  /> 
     831     <field ref="vtau"         name="sometauy"  /> 
     832   </file> 
     833    
     834   <file id="5d_grid_W" name="auto" description="ocean W grid variables" > 
     835     <field ref="woce"         name="vovecrtz" /> 
     836     <field ref="avt"          name="votkeavt" /> 
     837     <field ref="avt_evd"      name="votkeevd" /> 
     838     <field ref="avm"          name="votkeavm" /> 
     839     <field ref="avm_evd"      name="votkeevm" /> 
     840     <field ref="avs"          name="voddmavs" /> 
     841     <field ref="aht2d"        name="soleahtw" /> 
     842   </file> 
     843    
     844<!-- 
     845   <file id="5d_icemod" name="auto" description="ice variables" > 
     846     <field ref="ice_pres"                     /> 
     847     <field ref="snowthic_cea" name="isnowthi" /> 
     848     <field ref="icethic_cea"  name="iicethic" /> 
     849     <field ref="iceprod_cea"  name="iiceprod" /> 
     850     <field ref="ist_ipa"      name="iicetemp" /> 
     851     <field ref="ioceflxb"     name="ioceflxb" /> 
     852     <field ref="uice_ipa"     name="iicevelu" /> 
     853     <field ref="vice_ipa"     name="iicevelv" /> 
     854     <field ref="utau_ice"     name="iicestru" /> 
     855     <field ref="vtau_ice"     name="iicestrv" /> 
     856     <field ref="qsr_io_cea"   name="iicesflx" /> 
     857     <field ref="qns_io_cea"   name="iicenflx" /> 
     858     <field ref="snowpre"      name="isnowpre" /> 
     859   </file> 
     860--> 
     861    
     862      </group> 
     863       
     864      <group id="1m" output_freq="-1"     output_level="10" enabled=".TRUE.">                      <!-- real monthly files --> 
     865 
     866   <file id="1m_grid_T" name="auto" description="ocean T grid variables" > 
     867     <field ref="sst"          name="sosstsst"  /> 
     868   </file>    
     869 
     870      </group> 
     871 
     872      <group id="2m" output_freq="-2"     output_level="10" enabled=".TRUE.">                      <!-- real 2m files --> 
     873      </group> 
     874 
     875      <group id="3m" output_freq="-3"     output_level="10" enabled=".TRUE.">                      <!-- real 3m files --> 
     876      </group> 
     877 
     878      <group id="4m" output_freq="-4"     output_level="10" enabled=".TRUE.">                      <!-- real 4m files --> 
     879      </group> 
     880 
     881      <group id="6m" output_freq="-6"     output_level="10" enabled=".TRUE.">                      <!-- real 6m files --> 
     882      </group> 
     883 
     884      <group id="1y" output_freq="-12"    output_level="10" enabled=".TRUE.">                      <!-- real yearly files --> 
     885 
     886   <file id="1y_grid_T" name="auto" description="ocean T grid variables" > 
     887     <field ref="mldr10_1"     name="sobowlin"  operation="t_max(X)" /> 
     888   </file> 
     889 
     890      </group> 
     891 
     892      <group id="2y"  output_freq="-24"   output_level="10" enabled=".TRUE.">                      <!-- real 2y files --> 
     893      </group> 
     894 
     895      <group id="5y"  output_freq="-60"   output_level="10" enabled=".TRUE.">                      <!-- real 5y files --> 
     896      </group> 
     897 
     898      <group id="10y" output_freq="-120"  output_level="10" enabled=".TRUE.">                      <!-- real 10y files --> 
     899      </group> 
     900 
     901    </file_definition> 
     902     
     903    <!--  
     904============================================================================================================ 
     905=                                           grid definition                                                = 
     906=                                            DO NOT CHANGE                                                 = 
     907============================================================================================================ 
     908    --> 
     909     
     910    <axis_definition>   
     911      <axis id="deptht" description="Vertical T levels" unit="m" positive=".false." /> 
     912      <axis id="depthu" description="Vertical U levels" unit="m" positive=".false." /> 
     913      <axis id="depthv" description="Vertical V levels" unit="m" positive=".false." /> 
     914      <axis id="depthw" description="Vertical W levels" unit="m" positive=".false." /> 
     915      <axis id="none" description="axe non defini" unit="none" size="1" /> 
     916    </axis_definition>  
     917     
     918    <grid_definition> 
     919      <grid id="grid_T" description="grid T" > 
     920      </grid> 
     921 
     922      <grid id="grid_U" description="grid U" > 
     923      </grid> 
     924 
     925      <grid id="grid_V" description="grid V" > 
     926      </grid> 
     927 
     928      <grid id="grid_W" description="grid W" > 
     929      </grid> 
     930 
     931      <grid id="scalarpoint" description="scalar" > 
     932   <zoom id="1point" ibegin="1" jbegin="1" ni="1" nj="1" /> 
     933      </grid> 
     934 
     935    </grid_definition>     
     936     
     937  </context> 
     938   
    562939</simulation> 
  • trunk/NEMO/NST_SRC/agrif2model.F90

    r1156 r1793  
    7373 
    7474   END SUBROUTINE Agrif_clustering_def 
     75 
     76   SUBROUTINE Agrif_comm_def(modelcomm) 
     77 
     78      !!--------------------------------------------- 
     79      !!   *** ROUTINE Agrif_clustering_def *** 
     80      !!---------------------------------------------  
     81      Use Agrif_Types 
     82      Use lib_mpp 
     83 
     84      IMPLICIT NONE 
     85 
     86      INTEGER :: modelcomm 
     87 
     88#if defined key_mpp_mpi 
     89      modelcomm = mpi_comm_opa 
     90#endif 
     91      Return 
     92 
     93   END SUBROUTINE Agrif_comm_def 
    7594#else 
    7695   SUBROUTINE Agrif2Model 
  • trunk/NEMO/OPA_SRC/IOM/iom.F90

    r1792 r1793  
    4343   LOGICAL, PUBLIC, PARAMETER ::   lk_iomput = .FALSE.       !: iom_put flag 
    4444#endif 
    45    PUBLIC iom_init, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_gettime, iom_rstput, iom_put 
     45   PUBLIC iom_init, iom_swap, iom_open, iom_close, iom_setkt, iom_varid, iom_get, iom_gettime, iom_rstput, iom_put 
    4646 
    4747   PRIVATE iom_rp0d, iom_rp1d, iom_rp2d, iom_rp3d 
     
    8686      !!---------------------------------------------------------------------- 
    8787      ! read the xml file 
    88       CALL event__parse_xml_file( 'iodef.xml' )   ! <- to get from the nameliste (namrun)... 
     88      IF( Agrif_Root() ) CALL event__parse_xml_file( 'iodef.xml' )   ! <- to get from the nameliste (namrun)... 
     89      CALL iom_swap 
    8990 
    9091      ! calendar parameters 
     
    119120 
    120121   END SUBROUTINE iom_init 
     122 
     123 
     124   SUBROUTINE iom_swap 
     125      !!--------------------------------------------------------------------- 
     126      !!                   ***  SUBROUTINE  iom_swap  *** 
     127      !! 
     128      !! ** Purpose :  swap context between different agrif grid for xmlio_server 
     129      !!--------------------------------------------------------------------- 
     130#if defined key_iomput 
     131 
     132     IF( TRIM(Agrif_CFixed()) == '0' ) THEN 
     133        CALL event__swap_context("nemo") 
     134     ELSE 
     135        CALL event__swap_context(TRIM(Agrif_CFixed())//"_nemo") 
     136     ENDIF 
     137 
     138#endif 
     139   END SUBROUTINE iom_swap 
    121140 
    122141 
  • trunk/NEMO/OPA_SRC/lib_mpp.F90

    r1718 r1793  
    112112   INTEGER ::   mppsize        ! number of process 
    113113   INTEGER ::   mpprank        ! process number  [ 0 - size-1 ] 
    114    INTEGER ::   mpi_comm_opa   ! opa local communicator 
     114!$AGRIF_DO_NOT_TREAT 
     115   INTEGER, PUBLIC ::   mpi_comm_opa   ! opa local communicator 
     116!$AGRIF_END_DO_NOT_TREAT 
    115117 
    116118   ! variables used in case of sea-ice 
     
    191193      WRITE(ldtxt(6),*) '      size in bytes of exported buffer   nn_buffer   = ', nn_buffer 
    192194 
    193 #if defined key_agrif 
    194       IF( Agrif_Root() ) THEN 
    195 #endif 
    196          !!bug RB : should be clean to use Agrif in coupled mode 
    197 #if ! defined key_agrif 
    198          CALL mpi_initialized ( mpi_was_called, code ) 
    199          IF( code /= MPI_SUCCESS ) THEN 
    200             WRITE(*, cform_err) 
    201             WRITE(*, *) 'lib_mpp: Error in routine mpi_initialized' 
    202             CALL mpi_abort( mpi_comm_world, code, ierr ) 
    203          ENDIF 
    204  
    205          IF( PRESENT(localComm) .and. mpi_was_called ) THEN 
    206             mpi_comm_opa = localComm 
    207             SELECT CASE ( cn_mpi_send ) 
    208             CASE ( 'S' )                ! Standard mpi send (blocking) 
    209                WRITE(ldtxt(7),*) '           Standard blocking mpi send (send)' 
    210             CASE ( 'B' )                ! Buffer mpi send (blocking) 
    211                WRITE(ldtxt(7),*) '           Buffer blocking mpi send (bsend)' 
    212                CALL mpi_init_opa( ierr )  
    213             CASE ( 'I' )                ! Immediate mpi send (non-blocking send) 
    214                WRITE(ldtxt(7),*) '           Immediate non-blocking send (isend)' 
    215                l_isend = .TRUE. 
    216             CASE DEFAULT 
    217                WRITE(ldtxt(7),cform_err) 
    218                WRITE(ldtxt(8),*) '           bad value for cn_mpi_send = ', cn_mpi_send 
    219                nstop = nstop + 1 
    220             END SELECT 
    221          ELSE IF ( PRESENT(localComm) .and. .not. mpi_was_called ) THEN 
    222             WRITE(ldtxt(7),*) ' lib_mpp: You cannot provide a local communicator ' 
    223             WRITE(ldtxt(8),*) '          without calling MPI_Init before ! ' 
    224             nstop = nstop + 1 
    225          ELSE 
    226 #endif 
    227             SELECT CASE ( cn_mpi_send ) 
    228             CASE ( 'S' )                ! Standard mpi send (blocking) 
    229                WRITE(ldtxt(7),*) '           Standard blocking mpi send (send)' 
    230                CALL mpi_init( ierr ) 
    231             CASE ( 'B' )                ! Buffer mpi send (blocking) 
    232                WRITE(ldtxt(7),*) '           Buffer blocking mpi send (bsend)' 
    233                CALL mpi_init_opa( ierr ) 
    234             CASE ( 'I' )                ! Immediate mpi send (non-blocking send) 
    235                WRITE(ldtxt(7),*) '           Immediate non-blocking send (isend)' 
    236                l_isend = .TRUE. 
    237                CALL mpi_init( ierr ) 
    238             CASE DEFAULT 
    239                WRITE(ldtxt(7),cform_err) 
    240                WRITE(ldtxt(8),*) '           bad value for cn_mpi_send = ', cn_mpi_send 
    241                nstop = nstop + 1 
    242             END SELECT 
    243  
    244 #if ! defined key_agrif 
    245             CALL mpi_comm_dup( mpi_comm_world, mpi_comm_opa, code) 
    246             IF( code /= MPI_SUCCESS ) THEN 
    247                WRITE(*, cform_err) 
    248                WRITE(*, *) ' lib_mpp: Error in routine mpi_comm_dup' 
    249                CALL mpi_abort( mpi_comm_world, code, ierr ) 
    250             ENDIF 
    251             ! 
    252          ENDIF 
    253 #endif 
    254 #if defined key_agrif 
    255       ELSE 
     195      CALL mpi_initialized ( mpi_was_called, code ) 
     196      IF( code /= MPI_SUCCESS ) THEN 
     197         WRITE(*, cform_err) 
     198         WRITE(*, *) 'lib_mpp: Error in routine mpi_initialized' 
     199         CALL mpi_abort( mpi_comm_world, code, ierr ) 
     200      ENDIF 
     201 
     202      IF( mpi_was_called ) THEN 
     203         ! 
    256204         SELECT CASE ( cn_mpi_send ) 
    257205         CASE ( 'S' )                ! Standard mpi send (blocking) 
     
    259207         CASE ( 'B' )                ! Buffer mpi send (blocking) 
    260208            WRITE(ldtxt(7),*) '           Buffer blocking mpi send (bsend)' 
     209            CALL mpi_init_opa( ierr )  
    261210         CASE ( 'I' )                ! Immediate mpi send (non-blocking send) 
    262211            WRITE(ldtxt(7),*) '           Immediate non-blocking send (isend)' 
     
    267216            nstop = nstop + 1 
    268217         END SELECT 
     218      ELSE IF ( PRESENT(localComm) .and. .not. mpi_was_called ) THEN 
     219         WRITE(ldtxt(7),*) ' lib_mpp: You cannot provide a local communicator ' 
     220         WRITE(ldtxt(8),*) '          without calling MPI_Init before ! ' 
     221         nstop = nstop + 1 
     222      ELSE 
     223         SELECT CASE ( cn_mpi_send ) 
     224         CASE ( 'S' )                ! Standard mpi send (blocking) 
     225            WRITE(ldtxt(7),*) '           Standard blocking mpi send (send)' 
     226            CALL mpi_init( ierr ) 
     227         CASE ( 'B' )                ! Buffer mpi send (blocking) 
     228            WRITE(ldtxt(7),*) '           Buffer blocking mpi send (bsend)' 
     229            CALL mpi_init_opa( ierr ) 
     230         CASE ( 'I' )                ! Immediate mpi send (non-blocking send) 
     231            WRITE(ldtxt(7),*) '           Immediate non-blocking send (isend)' 
     232            l_isend = .TRUE. 
     233            CALL mpi_init( ierr ) 
     234         CASE DEFAULT 
     235            WRITE(ldtxt(7),cform_err) 
     236            WRITE(ldtxt(8),*) '           bad value for cn_mpi_send = ', cn_mpi_send 
     237            nstop = nstop + 1 
     238         END SELECT 
     239         ! 
    269240      ENDIF 
    270241 
    271       mpi_comm_opa = mpi_comm_world 
    272 #endif 
     242      IF( PRESENT(localComm) ) THEN  
     243         IF( Agrif_Root() ) THEN 
     244            mpi_comm_opa = localComm 
     245         ENDIF 
     246      ELSE 
     247         CALL mpi_comm_dup( mpi_comm_world, mpi_comm_opa, code) 
     248         IF( code /= MPI_SUCCESS ) THEN 
     249            WRITE(*, cform_err) 
     250            WRITE(*, *) ' lib_mpp: Error in routine mpi_comm_dup' 
     251            CALL mpi_abort( mpi_comm_world, code, ierr ) 
     252         ENDIF 
     253      ENDIF  
     254 
    273255      CALL mpi_comm_rank( mpi_comm_opa, mpprank, ierr ) 
    274256      CALL mpi_comm_size( mpi_comm_opa, mppsize, ierr ) 
  • trunk/NEMO/OPA_SRC/opa.F90

    r1725 r1793  
    156156      CALL opa_closefile 
    157157#if defined key_oasis3 || defined key_oasis4 
    158       CALL cpl_prism_finalize           ! end coupling and mpp communications with OASIS 
     158      IF( Agrif_Root() ) THEN 
     159         CALL cpl_prism_finalize           ! end coupling and mpp communications with OASIS 
     160     ENDIF  
    159161#else 
    160162      IF( lk_mpp )   CALL mppstop       ! end mpp communications 
     
    191193#if defined key_iomput 
    192194# if defined key_oasis3 || defined key_oasis4 
    193       CALL cpl_prism_init( ilocal_comm )      ! nemo local communicator given by oasis 
    194       CALL init_ioclient()                    ! io_server will get its communicators (if needed) from oasis (we don't see it) 
     195      IF( Agrif_Root() ) THEN 
     196         CALL cpl_prism_init( ilocal_comm )      ! nemo local communicator given by oasis 
     197         CALL init_ioclient()                    ! io_server will get its communicators (if needed) from oasis (we don't see it) 
     198      ENDIF 
    195199# else 
    196       CALL init_ioclient( ilocal_comm )       ! nemo local communicator (used or not) given by the io_server 
     200      IF( Agrif_Root() ) THEN 
     201         CALL init_ioclient( ilocal_comm )       ! nemo local communicator (used or not) given by the io_server 
     202      ENDIF 
    197203# endif 
    198204      narea = mynode( cltxt, ilocal_comm )    ! Nodes selection 
     
    200206#else 
    201207# if defined key_oasis3 || defined key_oasis4 
    202       CALL cpl_prism_init( ilocal_comm )      ! nemo local communicator given by oasis 
     208      IF( Agrif_Root() ) THEN 
     209         CALL cpl_prism_init( ilocal_comm )      ! nemo local communicator given by oasis 
     210      ENDIF 
    203211      narea = mynode( cltxt, ilocal_comm )    ! Nodes selection (control print return in cltxt) 
    204212# else 
  • trunk/NEMO/OPA_SRC/step.F90

    r1756 r1793  
    166166#if defined key_agrif 
    167167      kstp = nit000 + Agrif_Nb_Step() 
    168 !      IF ( Agrif_Root() .and. lwp) Write(*,*) '---' 
    169 !      IF (lwp) Write(*,*) 'Grid Number',Agrif_Fixed(),' time step ',kstp 
     168!      IF( Agrif_Root() .and. lwp) Write(*,*) '---' 
     169!      IF(lwp) Write(*,*) 'Grid Number',Agrif_Fixed(),' time step ',kstp 
     170# if defined key_iomput 
     171      IF( Agrif_Nbstepint() == 0) CALL iom_swap 
     172# endif    
    170173#endif    
    171174      indic = 1                                       ! reset to no error condition 
  • trunk/UTIL/fait_AA_make

    r1791 r1793  
    8686 
    8787# Agrif library and conv 
    88 libagrif :  \$(call keycompat,key_iomput,key_agrif) 
     88libagrif : 
    8989ifeq (\$(AGRIF),use) 
    9090   @( if [ ! -d OPAFILES ]; then mkdir OPAFILES; fi ) 
     
    327327 
    328328echo '#check key compatibility' 
    329 echo 'keycompat=$(if $(and $(findstring $1,$(P_P)),$(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible))' 
     329echo 'keycompat=$(if $(word 2, $(findstring $1,$(P_P)) $(findstring $2,$(P_P))),$(error $1 and $2 NOT compatible))' 
    330330 
    331331echo '' 
Note: See TracChangeset for help on using the changeset viewer.