PROGRAM test_cs IMPLICIT NONE INCLUDE "mpif.h" INTEGER :: rank INTEGER :: size INTEGER :: ierr CALL MPI_INIT(ierr) CALL MPI_COMM_RANK(MPI_COMM_WORLD,rank,ierr) CALL MPI_COMM_SIZE(MPI_COMM_WORLD,size,ierr) IF (rank<7) THEN CALL client("client",rank,7) ELSE CALL server ENDIF CALL MPI_FINALIZE(ierr) END PROGRAM test_cs SUBROUTINE client(id,rank,size) USE xios USE mod_wait IMPLICIT NONE INCLUDE 'mpif.h' CHARACTER(len=*) :: id INTEGER :: rank INTEGER :: size INTEGER :: comm TYPE(xios_time) :: dtime TYPE(xios_context) :: ctx_hdl INTEGER,PARAMETER :: ni_glo=100 INTEGER,PARAMETER :: nj_glo=100 INTEGER,PARAMETER :: llm=3 DOUBLE PRECISION :: lval(llm)=(/1.0,2.0,3.0/) TYPE(xios_field) :: field_hdl TYPE(xios_fieldgroup) :: fieldgroup_hdl TYPE(xios_file) :: file_hdl DOUBLE PRECISION,DIMENSION(ni_glo,nj_glo) :: lon_glo,lat_glo DOUBLE PRECISION :: field_A_glo(ni_glo,nj_glo,llm) DOUBLE PRECISION,ALLOCATABLE :: lon(:,:),lat(:,:),field_A(:,:,:), lonvalue(:) ; INTEGER :: ni,ibegin,iend,nj,jbegin,jend INTEGER :: i,j,l,ts,n CALL init_wait 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 DO l=1,llm field_A_glo(i,j,l)=(i-1)+(j-1)*ni_glo+10000*l ENDDO ENDDO ENDDO ni=ni_glo ; ibegin=1 jbegin=1 DO n=0,size-1 nj=nj_glo/size IF (n