Index: XMLIO_SERVER/trunk/bld.cfg
===================================================================
--- XMLIO_SERVER/trunk/bld.cfg	(revision 36)
+++ XMLIO_SERVER/trunk/bld.cfg	(revision 37)
@@ -28,5 +28,7 @@
 bld::tool::fflags    %FFLAGS %INCDIR
 bld::tool::ldflags   %BASE_LD %LIB
-
+bld::tool::cppflags  %FPP_FLAGS %INCDIR
+bld::tool::fppflags  %FPP_FLAGS %INCDIR
+bld::tool::fppkeys   %CPP_KEY
 # Pre-process code before analysing dependencies
 bld::pp              1
Index: XMLIO_SERVER/trunk/configure
===================================================================
--- XMLIO_SERVER/trunk/configure	(revision 36)
+++ XMLIO_SERVER/trunk/configure	(revision 37)
@@ -6,4 +6,5 @@
 set has_use_vt             = FALSE
 set has_oasis              = FALSE
+set has_no_mpi             = FALSE
 
 top:
@@ -55,4 +56,8 @@
     case -oasis
         set has_oasis = TRUE
+        shift ; goto top
+
+    case -no_mpi
+        set has_no_mpi = TRUE
         shift ; goto top
    
@@ -135,4 +140,7 @@
 endif
 
+if ( $has_no_mpi == TRUE ) then
+  set CPP_KEY="NO_MPI $CPP_KEY"
+endif
 
 
Index: XMLIO_SERVER/trunk/src/IOSERVER/ios_mpif.h
===================================================================
--- XMLIO_SERVER/trunk/src/IOSERVER/ios_mpif.h	(revision 37)
+++ XMLIO_SERVER/trunk/src/IOSERVER/ios_mpif.h	(revision 37)
@@ -0,0 +1,405 @@
+       INTEGER MPI_SOURCE, MPI_TAG, MPI_ERROR
+       PARAMETER (MPI_SOURCE=3,MPI_TAG=4,MPI_ERROR=5)
+       INTEGER MPI_STATUS_SIZE
+       PARAMETER (MPI_STATUS_SIZE=5)
+       INTEGER MPI_STATUS_IGNORE(MPI_STATUS_SIZE)
+       INTEGER MPI_STATUSES_IGNORE(MPI_STATUS_SIZE,1)
+       INTEGER MPI_ERRCODES_IGNORE(1)
+       CHARACTER*1 MPI_ARGVS_NULL(1,1)
+       CHARACTER*1 MPI_ARGV_NULL(1)
+       INTEGER MPI_SUCCESS
+       PARAMETER (MPI_SUCCESS=0)
+       INTEGER MPI_ERR_OTHER
+       PARAMETER (MPI_ERR_OTHER=15)
+       INTEGER MPI_ERR_WIN
+       PARAMETER (MPI_ERR_WIN=45)
+       INTEGER MPI_ERR_FILE
+       PARAMETER (MPI_ERR_FILE=27)
+       INTEGER MPI_ERR_COUNT
+       PARAMETER (MPI_ERR_COUNT=2)
+       INTEGER MPI_ERR_SPAWN
+       PARAMETER (MPI_ERR_SPAWN=42)
+       INTEGER MPI_ERR_BASE
+       PARAMETER (MPI_ERR_BASE=46)
+       INTEGER MPI_ERR_RMA_CONFLICT
+       PARAMETER (MPI_ERR_RMA_CONFLICT=49)
+       INTEGER MPI_ERR_IN_STATUS
+       PARAMETER (MPI_ERR_IN_STATUS=17)
+       INTEGER MPI_ERR_INFO_KEY
+       PARAMETER (MPI_ERR_INFO_KEY=29)
+       INTEGER MPI_ERR_LOCKTYPE
+       PARAMETER (MPI_ERR_LOCKTYPE=47)
+       INTEGER MPI_ERR_OP
+       PARAMETER (MPI_ERR_OP=9)
+       INTEGER MPI_ERR_ARG
+       PARAMETER (MPI_ERR_ARG=12)
+       INTEGER MPI_ERR_READ_ONLY
+       PARAMETER (MPI_ERR_READ_ONLY=40)
+       INTEGER MPI_ERR_SIZE
+       PARAMETER (MPI_ERR_SIZE=51)
+       INTEGER MPI_ERR_BUFFER
+       PARAMETER (MPI_ERR_BUFFER=1)
+       INTEGER MPI_ERR_DUP_DATAREP
+       PARAMETER (MPI_ERR_DUP_DATAREP=24)
+       INTEGER MPI_ERR_UNSUPPORTED_DATAREP
+       PARAMETER (MPI_ERR_UNSUPPORTED_DATAREP=43)
+       INTEGER MPI_ERR_LASTCODE
+       PARAMETER (MPI_ERR_LASTCODE=1073741823)
+       INTEGER MPI_ERR_TRUNCATE
+       PARAMETER (MPI_ERR_TRUNCATE=14)
+       INTEGER MPI_ERR_DISP
+       PARAMETER (MPI_ERR_DISP=52)
+       INTEGER MPI_ERR_PORT
+       PARAMETER (MPI_ERR_PORT=38)
+       INTEGER MPI_ERR_INFO_NOKEY
+       PARAMETER (MPI_ERR_INFO_NOKEY=31)
+       INTEGER MPI_ERR_ASSERT
+       PARAMETER (MPI_ERR_ASSERT=53)
+       INTEGER MPI_ERR_FILE_EXISTS
+       PARAMETER (MPI_ERR_FILE_EXISTS=25)
+       INTEGER MPI_ERR_PENDING
+       PARAMETER (MPI_ERR_PENDING=18)
+       INTEGER MPI_ERR_COMM
+       PARAMETER (MPI_ERR_COMM=5)
+       INTEGER MPI_ERR_KEYVAL
+       PARAMETER (MPI_ERR_KEYVAL=48)
+       INTEGER MPI_ERR_NAME
+       PARAMETER (MPI_ERR_NAME=33)
+       INTEGER MPI_ERR_REQUEST
+       PARAMETER (MPI_ERR_REQUEST=19)
+       INTEGER MPI_ERR_GROUP
+       PARAMETER (MPI_ERR_GROUP=8)
+       INTEGER MPI_ERR_TOPOLOGY
+       PARAMETER (MPI_ERR_TOPOLOGY=10)
+       INTEGER MPI_ERR_TYPE
+       PARAMETER (MPI_ERR_TYPE=3)
+       INTEGER MPI_ERR_TAG
+       PARAMETER (MPI_ERR_TAG=4)
+       INTEGER MPI_ERR_INFO_VALUE
+       PARAMETER (MPI_ERR_INFO_VALUE=30)
+       INTEGER MPI_ERR_NOT_SAME
+       PARAMETER (MPI_ERR_NOT_SAME=35)
+       INTEGER MPI_ERR_RMA_SYNC
+       PARAMETER (MPI_ERR_RMA_SYNC=50)
+       INTEGER MPI_ERR_INFO
+       PARAMETER (MPI_ERR_INFO=28)
+       INTEGER MPI_ERR_NO_MEM
+       PARAMETER (MPI_ERR_NO_MEM=34)
+       INTEGER MPI_ERR_BAD_FILE
+       PARAMETER (MPI_ERR_BAD_FILE=22)
+       INTEGER MPI_ERR_FILE_IN_USE
+       PARAMETER (MPI_ERR_FILE_IN_USE=26)
+       INTEGER MPI_ERR_UNKNOWN
+       PARAMETER (MPI_ERR_UNKNOWN=13)
+       INTEGER MPI_ERR_UNSUPPORTED_OPERATION
+       PARAMETER (MPI_ERR_UNSUPPORTED_OPERATION=44)
+       INTEGER MPI_ERR_QUOTA
+       PARAMETER (MPI_ERR_QUOTA=39)
+       INTEGER MPI_ERR_AMODE
+       PARAMETER (MPI_ERR_AMODE=21)
+       INTEGER MPI_ERR_ROOT
+       PARAMETER (MPI_ERR_ROOT=7)
+       INTEGER MPI_ERR_RANK
+       PARAMETER (MPI_ERR_RANK=6)
+       INTEGER MPI_ERR_DIMS
+       PARAMETER (MPI_ERR_DIMS=11)
+       INTEGER MPI_ERR_NO_SUCH_FILE
+       PARAMETER (MPI_ERR_NO_SUCH_FILE=37)
+       INTEGER MPI_ERR_SERVICE
+       PARAMETER (MPI_ERR_SERVICE=41)
+       INTEGER MPI_ERR_INTERN
+       PARAMETER (MPI_ERR_INTERN=16)
+       INTEGER MPI_ERR_IO
+       PARAMETER (MPI_ERR_IO=32)
+       INTEGER MPI_ERR_ACCESS
+       PARAMETER (MPI_ERR_ACCESS=20)
+       INTEGER MPI_ERR_NO_SPACE
+       PARAMETER (MPI_ERR_NO_SPACE=36)
+       INTEGER MPI_ERR_CONVERSION
+       PARAMETER (MPI_ERR_CONVERSION=23)
+       INTEGER MPI_ERRORS_ARE_FATAL
+       PARAMETER (MPI_ERRORS_ARE_FATAL=1409286144)
+       INTEGER MPI_ERRORS_RETURN
+       PARAMETER (MPI_ERRORS_RETURN=1409286145)
+       INTEGER MPI_IDENT
+       PARAMETER (MPI_IDENT=0)
+       INTEGER MPI_CONGRUENT
+       PARAMETER (MPI_CONGRUENT=1)
+       INTEGER MPI_SIMILAR
+       PARAMETER (MPI_SIMILAR=2)
+       INTEGER MPI_UNEQUAL
+       PARAMETER (MPI_UNEQUAL=3)
+       INTEGER MPI_MAX
+       PARAMETER (MPI_MAX=1476395009)
+       INTEGER MPI_MIN
+       PARAMETER (MPI_MIN=1476395010)
+       INTEGER MPI_SUM
+       PARAMETER (MPI_SUM=1476395011)
+       INTEGER MPI_PROD
+       PARAMETER (MPI_PROD=1476395012)
+       INTEGER MPI_LAND
+       PARAMETER (MPI_LAND=1476395013)
+       INTEGER MPI_BAND
+       PARAMETER (MPI_BAND=1476395014)
+       INTEGER MPI_LOR
+       PARAMETER (MPI_LOR=1476395015)
+       INTEGER MPI_BOR
+       PARAMETER (MPI_BOR=1476395016)
+       INTEGER MPI_LXOR
+       PARAMETER (MPI_LXOR=1476395017)
+       INTEGER MPI_BXOR
+       PARAMETER (MPI_BXOR=1476395018)
+       INTEGER MPI_MINLOC
+       PARAMETER (MPI_MINLOC=1476395019)
+       INTEGER MPI_MAXLOC
+       PARAMETER (MPI_MAXLOC=1476395020)
+       INTEGER MPI_REPLACE
+       PARAMETER (MPI_REPLACE=1476395021)
+       INTEGER MPI_COMM_WORLD
+       PARAMETER (MPI_COMM_WORLD=1140850688)
+       INTEGER MPI_COMM_SELF
+       PARAMETER (MPI_COMM_SELF=1140850689)
+       INTEGER MPI_GROUP_EMPTY
+       PARAMETER (MPI_GROUP_EMPTY=1207959552)
+       INTEGER MPI_COMM_NULL
+       PARAMETER (MPI_COMM_NULL=67108864)
+       INTEGER MPI_WIN_NULL
+       PARAMETER (MPI_WIN_NULL=536870912)
+       INTEGER MPI_FILE_NULL
+       PARAMETER (MPI_FILE_NULL=0)
+       INTEGER MPI_GROUP_NULL
+       PARAMETER (MPI_GROUP_NULL=134217728)
+       INTEGER MPI_OP_NULL
+       PARAMETER (MPI_OP_NULL=402653184)
+       INTEGER MPI_DATATYPE_NULL
+       PARAMETER (MPI_DATATYPE_NULL=201326592)
+       INTEGER MPI_REQUEST_NULL
+       PARAMETER (MPI_REQUEST_NULL=738197504)
+       INTEGER MPI_ERRHANDLER_NULL
+       PARAMETER (MPI_ERRHANDLER_NULL=335544320)
+       INTEGER MPI_INFO_NULL
+       PARAMETER (MPI_INFO_NULL=469762048)
+       INTEGER MPI_TAG_UB
+       PARAMETER (MPI_TAG_UB=1681915906)
+       INTEGER MPI_HOST
+       PARAMETER (MPI_HOST=1681915908)
+       INTEGER MPI_IO
+       PARAMETER (MPI_IO=1681915910)
+       INTEGER MPI_WTIME_IS_GLOBAL
+       PARAMETER (MPI_WTIME_IS_GLOBAL=1681915912)
+       INTEGER MPI_UNIVERSE_SIZE
+       PARAMETER (MPI_UNIVERSE_SIZE=1681915914)
+       INTEGER MPI_LASTUSEDCODE
+       PARAMETER (MPI_LASTUSEDCODE=1681915916)
+       INTEGER MPI_APPNUM
+       PARAMETER (MPI_APPNUM=1681915918)
+       INTEGER MPI_WIN_BASE
+       PARAMETER (MPI_WIN_BASE=1711276034)
+       INTEGER MPI_WIN_SIZE
+       PARAMETER (MPI_WIN_SIZE=1711276036)
+       INTEGER MPI_WIN_DISP_UNIT
+       PARAMETER (MPI_WIN_DISP_UNIT=1711276038)
+       INTEGER MPI_MAX_ERROR_STRING
+       PARAMETER (MPI_MAX_ERROR_STRING=512)
+       INTEGER MPI_MAX_NAME_STRING
+       PARAMETER (MPI_MAX_NAME_STRING=63)
+       INTEGER MPI_MAX_PORT_NAME
+       PARAMETER (MPI_MAX_PORT_NAME=256)
+       INTEGER MPI_MAX_OBJECT_NAME
+       PARAMETER (MPI_MAX_OBJECT_NAME=128)
+       INTEGER MPI_MAX_INFO_KEY
+       PARAMETER (MPI_MAX_INFO_KEY=255)
+       INTEGER MPI_MAX_INFO_VAL
+       PARAMETER (MPI_MAX_INFO_VAL=1024)
+       INTEGER MPI_MAX_PROCESSOR_NAME
+       PARAMETER (MPI_MAX_PROCESSOR_NAME=128)
+       INTEGER MPI_MAX_DATAREP_STRING
+       PARAMETER (MPI_MAX_DATAREP_STRING=128)
+       INTEGER MPI_UNDEFINED, MPI_UNDEFINED_RANK
+       PARAMETER (MPI_UNDEFINED=(-32766))
+       PARAMETER (MPI_UNDEFINED_RANK=(-32766))
+       INTEGER MPI_KEYVAL_INVALID
+       PARAMETER (MPI_KEYVAL_INVALID=603979776)
+       INTEGER MPI_BSEND_OVERHEAD
+       PARAMETER (MPI_BSEND_OVERHEAD=95)
+       INTEGER MPI_PROC_NULL
+       PARAMETER (MPI_PROC_NULL=-1)
+       INTEGER MPI_ANY_SOURCE
+       PARAMETER (MPI_ANY_SOURCE=-2)
+       INTEGER MPI_ANY_TAG
+       PARAMETER (MPI_ANY_TAG=-1)
+       INTEGER MPI_ROOT
+       PARAMETER (MPI_ROOT=-3)
+       INTEGER MPI_GRAPH
+       PARAMETER (MPI_GRAPH=1)
+       INTEGER MPI_CART
+       PARAMETER (MPI_CART=2)
+       INTEGER MPI_VERSION
+       PARAMETER (MPI_VERSION=2)
+       INTEGER MPI_SUBVERSION
+       PARAMETER (MPI_SUBVERSION=0)
+       INTEGER MPI_LOCK_EXCLUSIVE
+       PARAMETER (MPI_LOCK_EXCLUSIVE=234)
+       INTEGER MPI_LOCK_SHARED
+       PARAMETER (MPI_LOCK_SHARED=235)
+       INTEGER MPI_COMPLEX
+       PARAMETER (MPI_COMPLEX=1275072554)
+       INTEGER MPI_DOUBLE_COMPLEX
+       PARAMETER (MPI_DOUBLE_COMPLEX=1275072546)
+       INTEGER MPI_LOGICAL
+       PARAMETER (MPI_LOGICAL=1275069469)
+       INTEGER MPI_REAL
+       PARAMETER (MPI_REAL=1275070505)
+       INTEGER MPI_DOUBLE_PRECISION
+       PARAMETER (MPI_DOUBLE_PRECISION=1275070495)
+       INTEGER MPI_INTEGER
+       PARAMETER (MPI_INTEGER=1275069467)
+       INTEGER MPI_2INTEGER
+       PARAMETER (MPI_2INTEGER=1275070496)
+       INTEGER MPI_2COMPLEX
+       PARAMETER (MPI_2COMPLEX=1275072548)
+       INTEGER MPI_2DOUBLE_PRECISION
+       PARAMETER (MPI_2DOUBLE_PRECISION=1275072547)
+       INTEGER MPI_2REAL
+       PARAMETER (MPI_2REAL=1275070497)
+       INTEGER MPI_2DOUBLE_COMPLEX
+       PARAMETER (MPI_2DOUBLE_COMPLEX=1275076645)
+       INTEGER MPI_CHARACTER
+       PARAMETER (MPI_CHARACTER=1275068698)
+       INTEGER MPI_BYTE
+       PARAMETER (MPI_BYTE=1275068685)
+       INTEGER MPI_UB
+       PARAMETER (MPI_UB=(1275068433))
+       INTEGER MPI_LB
+       PARAMETER (MPI_LB=(1275068432))
+       INTEGER MPI_PACKED
+       PARAMETER (MPI_PACKED=(1275068687))
+       INTEGER MPI_INTEGER1
+       PARAMETER (MPI_INTEGER1=1275068717)
+       INTEGER MPI_INTEGER2
+       PARAMETER (MPI_INTEGER2=1275068975)
+       INTEGER MPI_INTEGER4
+       PARAMETER (MPI_INTEGER4=1275069488)
+       INTEGER MPI_INTEGER8
+       PARAMETER (MPI_INTEGER8=1275070513)
+       INTEGER MPI_INTEGER16
+       PARAMETER (MPI_INTEGER16=MPI_DATATYPE_NULL)
+       INTEGER MPI_REAL4
+       PARAMETER (MPI_REAL4=1275069479)
+       INTEGER MPI_REAL8
+       PARAMETER (MPI_REAL8=1275070505)
+       INTEGER MPI_REAL16
+       PARAMETER (MPI_REAL16=1275072555)
+       INTEGER MPI_COMPLEX8
+       PARAMETER (MPI_COMPLEX8=1275070504)
+       INTEGER MPI_COMPLEX16
+       PARAMETER (MPI_COMPLEX16=1275072554)
+       INTEGER MPI_COMPLEX32
+       PARAMETER (MPI_COMPLEX32=1275076652)
+       INTEGER MPI_ADDRESS_KIND, MPI_OFFSET_KIND
+       PARAMETER (MPI_ADDRESS_KIND=8)
+       PARAMETER (MPI_OFFSET_KIND=8)
+       INTEGER MPI_COMBINER_NAMED
+       PARAMETER (MPI_COMBINER_NAMED=1)
+       INTEGER MPI_COMBINER_DUP
+       PARAMETER (MPI_COMBINER_DUP=2)
+       INTEGER MPI_COMBINER_CONTIGUOUS
+       PARAMETER (MPI_COMBINER_CONTIGUOUS=3)
+       INTEGER MPI_COMBINER_VECTOR
+       PARAMETER (MPI_COMBINER_VECTOR=4)
+       INTEGER MPI_COMBINER_HVECTOR_INTEGER
+       PARAMETER (MPI_COMBINER_HVECTOR_INTEGER=5)
+       INTEGER MPI_COMBINER_HVECTOR
+       PARAMETER (MPI_COMBINER_HVECTOR=6)
+       INTEGER MPI_COMBINER_INDEXED
+       PARAMETER (MPI_COMBINER_INDEXED=7)
+       INTEGER MPI_COMBINER_HINDEXED_INTEGER
+       PARAMETER (MPI_COMBINER_HINDEXED_INTEGER=8)
+       INTEGER MPI_COMBINER_HINDEXED
+       PARAMETER (MPI_COMBINER_HINDEXED=9)
+       INTEGER MPI_COMBINER_INDEXED_BLOCK
+       PARAMETER (MPI_COMBINER_INDEXED_BLOCK=10)
+       INTEGER MPI_COMBINER_STRUCT_INTEGER
+       PARAMETER (MPI_COMBINER_STRUCT_INTEGER=11)
+       INTEGER MPI_COMBINER_STRUCT
+       PARAMETER (MPI_COMBINER_STRUCT=12)
+       INTEGER MPI_COMBINER_SUBARRAY
+       PARAMETER (MPI_COMBINER_SUBARRAY=13)
+       INTEGER MPI_COMBINER_DARRAY
+       PARAMETER (MPI_COMBINER_DARRAY=14)
+       INTEGER MPI_COMBINER_F90_REAL
+       PARAMETER (MPI_COMBINER_F90_REAL=15)
+       INTEGER MPI_COMBINER_F90_COMPLEX
+       PARAMETER (MPI_COMBINER_F90_COMPLEX=16)
+       INTEGER MPI_COMBINER_F90_INTEGER
+       PARAMETER (MPI_COMBINER_F90_INTEGER=17)
+       INTEGER MPI_COMBINER_RESIZED
+       PARAMETER (MPI_COMBINER_RESIZED=18)
+       INTEGER MPI_MODE_NOCHECK
+       PARAMETER (MPI_MODE_NOCHECK=1024)
+       INTEGER MPI_MODE_NOSTORE
+       PARAMETER (MPI_MODE_NOSTORE=2048)
+       INTEGER MPI_MODE_NOPUT
+       PARAMETER (MPI_MODE_NOPUT=4096)
+       INTEGER MPI_MODE_NOPRECEDE
+       PARAMETER (MPI_MODE_NOPRECEDE=8192)
+       INTEGER MPI_MODE_NOSUCCEED
+       PARAMETER (MPI_MODE_NOSUCCEED=16384)
+       INTEGER MPI_THREAD_SINGLE
+       PARAMETER (MPI_THREAD_SINGLE=0)
+       INTEGER MPI_THREAD_FUNNELED
+       PARAMETER (MPI_THREAD_FUNNELED=1)
+       INTEGER MPI_THREAD_SERIALIZED
+       PARAMETER (MPI_THREAD_SERIALIZED=2)
+       INTEGER MPI_THREAD_MULTIPLE
+       PARAMETER (MPI_THREAD_MULTIPLE=3)
+       INTEGER MPI_MODE_RDONLY
+       PARAMETER (MPI_MODE_RDONLY=2)
+       INTEGER MPI_MODE_RDWR
+       PARAMETER (MPI_MODE_RDWR=8)
+       INTEGER MPI_MODE_WRONLY
+       PARAMETER (MPI_MODE_WRONLY=4)
+       INTEGER MPI_MODE_DELETE_ON_CLOSE
+       PARAMETER (MPI_MODE_DELETE_ON_CLOSE=16)
+       INTEGER MPI_MODE_UNIQUE_OPEN
+       PARAMETER (MPI_MODE_UNIQUE_OPEN=32)
+       INTEGER MPI_MODE_CREATE
+       PARAMETER (MPI_MODE_CREATE=1)
+       INTEGER MPI_MODE_EXCL
+       PARAMETER (MPI_MODE_EXCL=64)
+       INTEGER MPI_MODE_APPEND
+       PARAMETER (MPI_MODE_APPEND=128)
+       INTEGER MPI_MODE_SEQUENTIAL
+       PARAMETER (MPI_MODE_SEQUENTIAL=256)
+       INTEGER MPI_SEEK_SET
+       PARAMETER (MPI_SEEK_SET=600)
+       INTEGER MPI_SEEK_CUR
+       PARAMETER (MPI_SEEK_CUR=602)
+       INTEGER MPI_SEEK_END
+       PARAMETER (MPI_SEEK_END=604)
+       INTEGER MPI_ORDER_C
+       PARAMETER (MPI_ORDER_C=56)
+       INTEGER MPI_ORDER_FORTRAN
+       PARAMETER (MPI_ORDER_FORTRAN=57)
+       INTEGER MPI_DISTRIBUTE_BLOCK
+       PARAMETER (MPI_DISTRIBUTE_BLOCK=121)
+       INTEGER MPI_DISTRIBUTE_CYCLIC
+       PARAMETER (MPI_DISTRIBUTE_CYCLIC=122)
+       INTEGER MPI_DISTRIBUTE_NONE
+       PARAMETER (MPI_DISTRIBUTE_NONE=123)
+       INTEGER MPI_DISTRIBUTE_DFLT_DARG
+       PARAMETER (MPI_DISTRIBUTE_DFLT_DARG=-49767)
+       INTEGER MPI_DISPLACEMENT_CURRENT
+       PARAMETER (MPI_DISPLACEMENT_CURRENT=-54278278)
+       INTEGER MPI_BOTTOM, MPI_IN_PLACE
+       EXTERNAL MPI_DUP_FN, MPI_NULL_DELETE_FN, MPI_NULL_COPY_FN
+       EXTERNAL MPI_WTIME, MPI_WTICK
+       EXTERNAL PMPI_WTIME, PMPI_WTICK
+       EXTERNAL MPI_COMM_DUP_FN, MPI_COMM_NULL_DELETE_FN
+       EXTERNAL MPI_COMM_NULL_COPY_FN
+       EXTERNAL MPI_WIN_DUP_FN, MPI_WIN_NULL_DELETE_FN
+       EXTERNAL MPI_WIN_NULL_COPY_FN
+       EXTERNAL MPI_TYPE_DUP_FN, MPI_TYPE_NULL_DELETE_FN
+       EXTERNAL MPI_TYPE_NULL_COPY_FN
+       DOUBLE PRECISION MPI_WTIME, MPI_WTICK
+       DOUBLE PRECISION PMPI_WTIME, PMPI_WTICK
Index: XMLIO_SERVER/trunk/src/IOSERVER/mod_global_memory.f90
===================================================================
--- XMLIO_SERVER/trunk/src/IOSERVER/mod_global_memory.f90	(revision 36)
+++ XMLIO_SERVER/trunk/src/IOSERVER/mod_global_memory.f90	(revision 37)
@@ -11,6 +11,6 @@
 
   SUBROUTINE Allocate_global_memory_r8(size,Pt)
+  USE mpi_mod
   IMPLICIT NONE
-    INCLUDE 'mpif.h'
     REAL(kind=8),POINTER :: Pt(:)
     INTEGER              :: size
@@ -39,6 +39,6 @@
 
   SUBROUTINE Allocate_global_memory_i8(size,Pt)
+  USE mpi_mod
   IMPLICIT NONE
-    INCLUDE 'mpif.h'
     INTEGER(kind=8),POINTER :: Pt(:)
     INTEGER              :: size
@@ -66,6 +66,6 @@
   
 !  SUBROUTINE Allocate_global_memory_r4(size,Pt)
+!  USE mpi_mod
 !  IMPLICIT NONE
-!    INCLUDE 'mpif.h'
 !    REAL(kind=4),POINTER :: Pt(:)
 !    INTEGER              :: size
@@ -95,6 +95,6 @@
 
   SUBROUTINE Allocate_global_memory_i4(size,Pt)
+  USE mpi_mod
   IMPLICIT NONE
-    INCLUDE 'mpif.h'
     INTEGER(kind=4),POINTER :: Pt(:)
     INTEGER              :: size
Index: XMLIO_SERVER/trunk/src/IOSERVER/mod_ioclient.f90
===================================================================
--- XMLIO_SERVER/trunk/src/IOSERVER/mod_ioclient.f90	(revision 36)
+++ XMLIO_SERVER/trunk/src/IOSERVER/mod_ioclient.f90	(revision 37)
@@ -11,4 +11,5 @@
   USE mod_event_client
   USE iomanager
+  USE mpi_mod
   IMPLICIT NONE
     INTEGER, INTENT(INOUT),OPTIONAL :: NEW_COMM
@@ -19,34 +20,38 @@
     INTEGER :: ierr
     LOGICAL :: init
-    INCLUDE 'mpif.h'
  
     CALL read_namelist
 
-    IF (using_server) THEN
-      CALL Init_parallel
-      CALL Init_mpi_buffer
-      CALL Init_wait
-      IF (PRESENT(NEW_COMM)) THEN
-        NEW_COMM=intracomm
+    IF (using_mpi) THEN
+      IF (using_server) THEN
+        CALL Init_parallel
+        CALL Init_mpi_buffer
+        CALL Init_wait
+        IF (PRESENT(NEW_COMM)) THEN
+          NEW_COMM=intracomm
+        ENDIF
+      ELSE
+        CALL MPI_INITIALIZED(init,ierr)
+        IF (init) THEN
+          IF (.NOT. PRESENT(NEW_COMM)) THEN
+             Comm=MPI_COMM_WORLD
+          ELSE
+            Comm=New_Comm
+          ENDIF
+        ELSE
+          CALL MPI_INIT(ierr)
+          Comm=MPI_COMM_WORLD
+          
+          IF (PRESENT(NEW_COMM)) THEN
+            New_Comm=MPI_COMM_WORLD
+          ENDIF
+        ENDIF  
+        CALL MPI_COMM_SIZE(Comm,nb_server,ierr)     
+        CALL MPI_COMM_RANK(Comm,rank,ierr)
+        CALL iom__init(1,nb_server,rank)
+        CALL iom__set_current_rank(1)
       ENDIF
     ELSE
-      CALL MPI_INITIALIZED(init,ierr)
-      IF (init) THEN
-        IF (.NOT. PRESENT(NEW_COMM)) THEN
-           Comm=MPI_COMM_WORLD
-        ELSE
-          Comm=New_Comm
-        ENDIF
-      ELSE
-        CALL MPI_INIT(ierr)
-        Comm=MPI_COMM_WORLD
-        
-        IF (PRESENT(NEW_COMM)) THEN
-          New_Comm=MPI_COMM_WORLD
-        ENDIF
-      ENDIF  
-      CALL MPI_COMM_SIZE(Comm,nb_server,ierr)     
-      CALL MPI_COMM_RANK(Comm,rank,ierr)
-      CALL iom__init(1,nb_server,rank)
+      CALL iom__init(1,1,0)
       CALL iom__set_current_rank(1)
     ENDIF
Index: XMLIO_SERVER/trunk/src/IOSERVER/mod_ioclient_para.F90
===================================================================
--- XMLIO_SERVER/trunk/src/IOSERVER/mod_ioclient_para.F90	(revision 36)
+++ XMLIO_SERVER/trunk/src/IOSERVER/mod_ioclient_para.F90	(revision 37)
@@ -16,6 +16,6 @@
   USE mod_prism_get_comm  
 #endif
+  USE mpi_mod
   IMPLICIT NONE
-    INCLUDE 'mpif.h'
     INTEGER :: NEW_COMM
     INTEGER :: ierr
@@ -79,6 +79,6 @@
   
   SUBROUTINE Finalize_parallel
+  USE mpi_mod
   IMPLICIT NONE
-    include 'mpif.h'
     INTEGER :: ierr
     
Index: XMLIO_SERVER/trunk/src/IOSERVER/mod_ioserver_para.F90
===================================================================
--- XMLIO_SERVER/trunk/src/IOSERVER/mod_ioserver_para.F90	(revision 36)
+++ XMLIO_SERVER/trunk/src/IOSERVER/mod_ioserver_para.F90	(revision 37)
@@ -24,6 +24,6 @@
   USE mod_prism_get_comm 
 #endif 
+  USE mpi_mod
   IMPLICIT NONE
-    INCLUDE 'mpif.h'
     INTEGER :: ierr
     INTEGER :: global_rank
@@ -86,6 +86,6 @@
   USE mod_prism_proto
 #endif
+  USE mpi_mod
   IMPLICIT NONE
-    include 'mpif.h'
     INTEGER :: ierr
     
Index: XMLIO_SERVER/trunk/src/IOSERVER/mod_mpi_buffer_client.f90
===================================================================
--- XMLIO_SERVER/trunk/src/IOSERVER/mod_mpi_buffer_client.f90	(revision 36)
+++ XMLIO_SERVER/trunk/src/IOSERVER/mod_mpi_buffer_client.f90	(revision 37)
@@ -55,6 +55,6 @@
   USE mod_ioclient_para
   USE mpitrace
+  USE mpi_mod
   IMPLICIT NONE
-    INCLUDE 'mpif.h'
     INTEGER :: request_id
     
@@ -76,6 +76,6 @@
   USE mpitrace
   use mod_wait
+  USE mpi_mod
   IMPLICIT NONE
-    INCLUDE 'mpif.h'
     INTEGER :: ierr
     INTEGER :: message_size
@@ -150,6 +150,6 @@
 
   SUBROUTINE Check_request
+  USE mpi_mod
   IMPLICIT NONE
-  INCLUDE 'mpif.h'
   LOGICAL :: ok_out
   LOGICAL :: OK_complete
Index: XMLIO_SERVER/trunk/src/IOSERVER/mod_mpi_buffer_server.f90
===================================================================
--- XMLIO_SERVER/trunk/src/IOSERVER/mod_mpi_buffer_server.f90	(revision 36)
+++ XMLIO_SERVER/trunk/src/IOSERVER/mod_mpi_buffer_server.f90	(revision 37)
@@ -54,6 +54,6 @@
   USE mod_ioserver_para
   USE mpitrace
-  IMPLICIT NONE
-  INCLUDE 'mpif.h'
+  USE mpi_mod
+  IMPLICIT NONE
     INTEGER :: n
     INTEGER :: status(MPI_STATUS_SIZE)
Index: XMLIO_SERVER/trunk/src/IOSERVER/mpi_mod.F90
===================================================================
--- XMLIO_SERVER/trunk/src/IOSERVER/mpi_mod.F90	(revision 37)
+++ XMLIO_SERVER/trunk/src/IOSERVER/mpi_mod.F90	(revision 37)
@@ -0,0 +1,11 @@
+MODULE mpi_mod
+
+#ifdef NO_MPI
+    LOGICAL, PARAMETER :: using_mpi=.FALSE.
+    INCLUDE 'ios_mpif.h'
+#else
+    LOGICAL, PARAMETER :: using_mpi=.TRUE.
+    INCLUDE 'mpif.h'
+#endif
+
+END MODULE mpi_mod
Index: XMLIO_SERVER/trunk/src/IOSERVER/mpi_wrapper.F90
===================================================================
--- XMLIO_SERVER/trunk/src/IOSERVER/mpi_wrapper.F90	(revision 37)
+++ XMLIO_SERVER/trunk/src/IOSERVER/mpi_wrapper.F90	(revision 37)
@@ -0,0 +1,80 @@
+SUBROUTINE void
+
+END SUBROUTINE void
+
+#ifdef NO_MPI
+
+SUBROUTINE MPI_ALLOC_MEM
+
+END SUBROUTINE MPI_ALLOC_MEM
+
+
+SUBROUTINE MPI_INITIALIZED
+
+END SUBROUTINE MPI_INITIALIZED
+
+
+SUBROUTINE MPI_INIT
+
+END SUBROUTINE MPI_INIT
+
+
+SUBROUTINE MPI_COMM_SIZE
+
+END SUBROUTINE MPI_COMM_SIZE
+
+
+SUBROUTINE MPI_COMM_RANK
+
+END SUBROUTINE MPI_COMM_RANK 
+
+
+SUBROUTINE MPI_COMM_SPLIT
+
+END SUBROUTINE MPI_COMM_SPLIT
+
+
+SUBROUTINE MPI_ALLGATHER
+
+END SUBROUTINE MPI_ALLGATHER
+
+
+SUBROUTINE MPI_FINALIZE
+
+END SUBROUTINE MPI_FINALIZE
+
+
+SUBROUTINE MPI_ISSEND
+
+END SUBROUTINE MPI_ISSEND
+
+
+SUBROUTINE MPI_TEST
+
+END SUBROUTINE MPI_TEST
+
+
+SUBROUTINE MPI_GET_COUNT
+
+END SUBROUTINE MPI_GET_COUNT
+
+
+SUBROUTINE MPI_IPROBE 
+
+END SUBROUTINE MPI_IPROBE 
+
+
+SUBROUTINE MPI_IRECV
+
+END SUBROUTINE MPI_IRECV
+
+
+SUBROUTINE MPI_ABORT
+
+END SUBROUTINE MPI_ABORT
+
+SUBROUTINE MPI_BARRIER
+
+END SUBROUTINE MPI_BARRIER
+
+#endif
