PROGRAM test_xios2_cmip6 USE xios USE mod_wait IMPLICIT NONE INCLUDE "mpif.h" INTEGER,PARAMETER :: model_timestep=600, il_unit=10 INTEGER :: comm, rank, size_loc, ierr INTEGER :: ni,ibegin,iend,nj,jbegin,jend INTEGER :: i,j,l,ts,n, nb_pt, il_run CHARACTER(len=*),PARAMETER :: id="client" TYPE(xios_duration) :: dtime TYPE(xios_context) :: ctx_hdl DOUBLE PRECISION,ALLOCATABLE :: lon_glo(:,:),lat_glo(:,:),lval(:) DOUBLE PRECISION,ALLOCATABLE :: field_A_glo (:,:,:) DOUBLE PRECISION,ALLOCATABLE :: lon(:,:),lat(:,:),lonvalue(:,:) DOUBLE PRECISION,ALLOCATABLE :: field_atm_2D(:,:),field_atm_3D(:,:,:),field_srf_2D(:),field_srf_3D(:,:) DOUBLE PRECISION,ALLOCATABLE :: field_oce_2D(:,:),field_oce_3D(:,:,:) INTEGER, ALLOCATABLE :: kindex(:) INTEGER :: ni_glo, nj_glo,llm,nb_days_run,nb_run NAMELIST /param_toy/ ni_glo, nj_glo,llm,nb_days_run,nb_run !!! MPI Initialization CALL MPI_INIT(ierr) CALL init_wait !!! Lecture des parametres du run OPEN(unit=il_unit, file='param.def',status='old',iostat=ierr) READ (il_unit, nml=param_toy) PRINT *, ni_glo, nj_glo,llm,nb_days_run,nb_run !!! XIOS Initialization (get the local communicator) CALL xios_initialize(id,return_comm=comm) CALL MPI_COMM_RANK(comm,rank,ierr) CALL MPI_COMM_SIZE(comm,size_loc,ierr) !!! Initialisation et allocation des coordonnées globales et locales pour la grille régulière ALLOCATE (lon_glo(ni_glo,nj_glo),lat_glo(ni_glo,nj_glo)) ALLOCATE (field_A_glo(ni_glo,nj_glo,llm)) ALLOCATE (lval(llm)) 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=0 jbegin=0 DO n=0,size_loc-1 nj=nj_glo/size_loc IF (n