There is another simpler solution to read in a map of values without having to do much coding nor declaring superbig arrays, and yet working in parallel.
You can map the value onto your mesh and add that as a new variable to your GEOMETRY file (for instance, or to one of the BIs (i.e. BINARY 1 or 2)). TELEMAC will then split the mesh for you and all you need to do is to read the value from that file using something like (storing the value in PRIVE array, the name of the variable in the BIN1 being "MY VAR"):
INTEGER ERR
DOUBLE PRECISION BID
REAL, ALLOCATABLE :: WSEB(:)
LOGICAL OK
ALLOCATE(WSEB(NPOIN),STAT=ERR)
IF(ERR.NE.0) STOP
IF( NPRIV.GE.1 ) THEN
CALL OS( 'X=C ',PRIVE%ADR(1)%P, ZF,ZF,(0.D0) )
CALL FIND_IN_SEL(PRIVE%ADR(1)%P,'MY VAR ',
& T2D_FILES(T2DBI1)%LU,WSEB,OK,TIME=BID)
ENDIF
IF( OK ) WRITE(LU,'(//,1X,A)') 'MY VAR'
DEALLOCATE(WSEB)
Hope this helps,
Sébastien