PROGRAM test_basic_2D USE xios USE mod_wait IMPLICIT NONE INCLUDE "mpif.h" TYPE(xios_duration) :: dtime TYPE(xios_context) :: ctx_hdl INTEGER,PARAMETER :: ni_glo=100 INTEGER,PARAMETER :: nj_glo=100 INTEGER :: i,j,n,ts INTEGER :: ibegin,jbegin,ni,nj,nbi,nbj,iend,jend INTEGER :: ierr, rank, size INTEGER :: comm DOUBLE PRECISION,DIMENSION(ni_glo,nj_glo) :: lon_glo,lat_glo DOUBLE PRECISION :: field_glo(ni_glo,nj_glo) DOUBLE PRECISION,ALLOCATABLE :: lon(:,:),lat(:,:),field_domain(:,:), field_axis(:,:) ! Initialize MPI CALL MPI_INIT(ierr) CALL init_wait ! Initialize XIOS CALL xios_initialize('client', return_comm=comm) CALL MPI_COMM_SIZE(comm, size, ierr) CALL MPI_COMM_RANK(comm, rank, ierr) ! Initialize all global values DO j=1,nj_glo DO i=1,ni_glo lon_glo(i,j)=(i-1)+(j-1)*ni_glo lat_glo(i,j)=1000+(i-1)+(j-1)*ni_glo field_glo(i,j)=(i-1)+(j-1)*ni_glo ENDDO ENDDO ni=ni_glo ; ibegin=0 nbi = 1 ! Specify how we distributed domain DO i=1,int(sqrt(real(size)))+1 IF (0 == MOD(size,i)) nbi = i ENDDO nbj = size/nbi jbegin=0; LOOP1: DO j=1,nbj nj=nj_glo/nbj if (nj