Index: trunk/libIGCM/libIGCM_sys/libIGCM_sys_cesium.ksh
===================================================================
--- trunk/libIGCM/libIGCM_sys/libIGCM_sys_cesium.ksh	(revision 696)
+++ trunk/libIGCM/libIGCM_sys/libIGCM_sys_cesium.ksh	(revision 697)
@@ -1488,4 +1488,94 @@
 }
 
+function IGCM_sys_rebuild_station {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_station" -- $@
+  typeset i list_opt file_in file_out prefix_invert list_invert
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_station :" $@
+  fi
+  list_opt=$@
+
+  # Invert Axis : t,x -> x,t 
+  #               t,pres,x -> x,t,pres
+  # So that we can concatenate along x
+  i=0
+  for file_in in ${list_opt} ; do
+    (( i = i + 1))
+    [ ${i} = 1 ] && file_out=${file_in} && continue
+    prefix_invert=$( basename ${file_in} .nc )
+    IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs ${file_in} ${prefix_invert}_xt.nc
+    list_invert[${#list_invert[*]}]=${prefix_invert}_xt.nc
+  done
+
+  # Concatenate
+  IGCM_sys_ncrcat ${list_invert[*]} histstn_xt.nc
+
+  # Re-ivert file
+  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x histstn_xt.nc ${file_out}
+
+  # Station re-ordering is too expansive to be run within libICGM
+  # This is due to (ncpdq - nrcat - ncpdq) I/O sequence.
+  # This re-ordering must be done "in memory" by the cmorization process
+  # Anyway this is the best sequence using (ncpdq - nrcat - ncpdq)
+  # BEGIN reordering
+
+  # Only LMDZ text output contains the exact ordering of the station.
+  # We isolate this in the code below:
+  #  0  38  -157.5000000000000  70.98591549295774
+  #  0  54  27.49999999999999   67.18309859154928
+  #  0  56  -62.50000000000001  82.39436619718309
+  #  0  79  12.49999999999999   78.59154929577466
+  #  0  116 -165.0000000000000  76.05633802816901
+  #  0  117 130.0000000000000   70.98591549295774
+  #  0  118 110.0000000000000   87.46478873239437
+  #  1  40  4.999999999999995   51.97183098591550
+#  typeset iStation iProc list_opt file_in file_out prefix_invert
+#  typeset -Z4 j4
+#  typeset -Z3 j3
+
+#  unset list_opt
+#  set +A list_opt $@
+
+  # Filename after rebuild
+#  file_out=${list_opt[0]}
+  # Prefix of output files
+#  prefix_invert=$( basename ${file_out} .nc )
+  # Number of procs
+#  num_proc=$( grep -i mpi_size ${PREFIX}_${Exe_Output} | wc -l )
+
+#  iProc=0
+#  while [ ${iProc} -lt ${num_proc} ] ; do
+    # Array containing Station as a number
+#    unset proc_stn
+#    set +A proc_stn $( grep "iophy_mpi rank ip lon lat  $iProc" ${PREFIX}_${Exe_Output} | sed -e "s/iophy_mpi rank ip lon lat //g" | awk ' {print $2}' )
+    # Number of stations produced by processor proc
+#    stationLast=${#proc_stn[*]}
+    # Proc number on 4 digits
+#    j4=${iProc}
+    # Init
+#    iStation=0
+#    while [ ${iStation} -lt ${stationLast} ] ; do
+      # Station number on 3 digits
+#      j3=${proc_stn[${iStation}]}
+      # Extract station
+      # Invert Axis : t,x -> x,t 
+      #               t,pres,x -> x,t,pres
+      # So that we can concatenate along x
+#      IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs -d x,$iStation,$iStation ${prefix_invert}_${j4}.nc ${prefix_invert}_stn_${j3}.nc
+#      (( iStation = iStation + 1 ))
+#    done
+#    (( iProc = iProc + 1 ))
+#  done
+
+  # Concatenate all station along x
+#  IGCM_sys_ncrcat ${prefix_invert}_stn_???.nc ${prefix_invert}_xt.nc
+
+  # Re-invert file
+#  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x ${prefix_invert}_xt.nc ${file_out}
+
+  # END reordering
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_station"
+}
 
 ############################################################
Index: trunk/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh
===================================================================
--- trunk/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh	(revision 696)
+++ trunk/libIGCM/libIGCM_sys/libIGCM_sys_curie.ksh	(revision 697)
@@ -1663,4 +1663,95 @@
 }
 
+function IGCM_sys_rebuild_station {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_station" -- $@
+  typeset i list_opt file_in file_out prefix_invert list_invert
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_station :" $@
+  fi
+  list_opt=$@
+
+  # Invert Axis : t,x -> x,t 
+  #               t,pres,x -> x,t,pres
+  # So that we can concatenate along x
+  i=0
+  for file_in in ${list_opt} ; do
+    (( i = i + 1))
+    [ ${i} = 1 ] && file_out=${file_in} && continue
+    prefix_invert=$( basename ${file_in} .nc )
+    IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs ${file_in} ${prefix_invert}_xt.nc
+    list_invert[${#list_invert[*]}]=${prefix_invert}_xt.nc
+  done
+
+  # Concatenate
+  IGCM_sys_ncrcat ${list_invert[*]} histstn_xt.nc
+
+  # Re-ivert file
+  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x histstn_xt.nc ${file_out}
+
+  # Station re-ordering is too expansive to be run within libICGM
+  # This is due to (ncpdq - nrcat - ncpdq) I/O sequence.
+  # This re-ordering must be done "in memory" by the cmorization process
+  # Anyway this is the best sequence using (ncpdq - nrcat - ncpdq)
+  # BEGIN reordering
+
+  # Only LMDZ text output contains the exact ordering of the station.
+  # We isolate this in the code below:
+  #  0  38  -157.5000000000000  70.98591549295774
+  #  0  54  27.49999999999999   67.18309859154928
+  #  0  56  -62.50000000000001  82.39436619718309
+  #  0  79  12.49999999999999   78.59154929577466
+  #  0  116 -165.0000000000000  76.05633802816901
+  #  0  117 130.0000000000000   70.98591549295774
+  #  0  118 110.0000000000000   87.46478873239437
+  #  1  40  4.999999999999995   51.97183098591550
+#  typeset iStation iProc list_opt file_in file_out prefix_invert
+#  typeset -Z4 j4
+#  typeset -Z3 j3
+
+#  unset list_opt
+#  set +A list_opt $@
+
+  # Filename after rebuild
+#  file_out=${list_opt[0]}
+  # Prefix of output files
+#  prefix_invert=$( basename ${file_out} .nc )
+  # Number of procs
+#  num_proc=$( grep -i mpi_size ${PREFIX}_${Exe_Output} | wc -l )
+
+#  iProc=0
+#  while [ ${iProc} -lt ${num_proc} ] ; do
+    # Array containing Station as a number
+#    unset proc_stn
+#    set +A proc_stn $( grep "iophy_mpi rank ip lon lat  $iProc" ${PREFIX}_${Exe_Output} | sed -e "s/iophy_mpi rank ip lon lat //g" | awk ' {print $2}' )
+    # Number of stations produced by processor proc
+#    stationLast=${#proc_stn[*]}
+    # Proc number on 4 digits
+#    j4=${iProc}
+    # Init
+#    iStation=0
+#    while [ ${iStation} -lt ${stationLast} ] ; do
+      # Station number on 3 digits
+#      j3=${proc_stn[${iStation}]}
+      # Extract station
+      # Invert Axis : t,x -> x,t 
+      #               t,pres,x -> x,t,pres
+      # So that we can concatenate along x
+#      IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs -d x,$iStation,$iStation ${prefix_invert}_${j4}.nc ${prefix_invert}_stn_${j3}.nc
+#      (( iStation = iStation + 1 ))
+#    done
+#    (( iProc = iProc + 1 ))
+#  done
+
+  # Concatenate all station along x
+#  IGCM_sys_ncrcat ${prefix_invert}_stn_???.nc ${prefix_invert}_xt.nc
+
+  # Re-invert file
+#  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x ${prefix_invert}_xt.nc ${file_out}
+
+  # END reordering
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_station"
+}
+
 ############################################################
 # Activate Running Environnment Variables
Index: trunk/libIGCM/libIGCM_sys/libIGCM_sys_default.ksh
===================================================================
--- trunk/libIGCM/libIGCM_sys/libIGCM_sys_default.ksh	(revision 696)
+++ trunk/libIGCM/libIGCM_sys/libIGCM_sys_default.ksh	(revision 697)
@@ -1303,4 +1303,95 @@
 
   IGCM_debug_PopStack "IGCM_sys_rebuild"
+}
+
+function IGCM_sys_rebuild_station {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_station" -- $@
+  typeset i list_opt file_in file_out prefix_invert list_invert
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_station :" $@
+  fi
+  list_opt=$@
+
+  # Invert Axis : t,x -> x,t 
+  #               t,pres,x -> x,t,pres
+  # So that we can concatenate along x
+  i=0
+  for file_in in ${list_opt} ; do
+    (( i = i + 1))
+    [ ${i} = 1 ] && file_out=${file_in} && continue
+    prefix_invert=$( basename ${file_in} .nc )
+    IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs ${file_in} ${prefix_invert}_xt.nc
+    list_invert[${#list_invert[*]}]=${prefix_invert}_xt.nc
+  done
+
+  # Concatenate
+  IGCM_sys_ncrcat ${list_invert[*]} histstn_xt.nc
+
+  # Re-ivert file
+  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x histstn_xt.nc ${file_out}
+
+  # Station re-ordering is too expansive to be run within libICGM
+  # This is due to (ncpdq - nrcat - ncpdq) I/O sequence.
+  # This re-ordering must be done "in memory" by the cmorization process
+  # Anyway this is the best sequence using (ncpdq - nrcat - ncpdq)
+  # BEGIN reordering
+
+  # Only LMDZ text output contains the exact ordering of the station.
+  # We isolate this in the code below:
+  #  0  38  -157.5000000000000  70.98591549295774
+  #  0  54  27.49999999999999   67.18309859154928
+  #  0  56  -62.50000000000001  82.39436619718309
+  #  0  79  12.49999999999999   78.59154929577466
+  #  0  116 -165.0000000000000  76.05633802816901
+  #  0  117 130.0000000000000   70.98591549295774
+  #  0  118 110.0000000000000   87.46478873239437
+  #  1  40  4.999999999999995   51.97183098591550
+#  typeset iStation iProc list_opt file_in file_out prefix_invert
+#  typeset -Z4 j4
+#  typeset -Z3 j3
+
+#  unset list_opt
+#  set +A list_opt $@
+
+  # Filename after rebuild
+#  file_out=${list_opt[0]}
+  # Prefix of output files
+#  prefix_invert=$( basename ${file_out} .nc )
+  # Number of procs
+#  num_proc=$( grep -i mpi_size ${PREFIX}_${Exe_Output} | wc -l )
+
+#  iProc=0
+#  while [ ${iProc} -lt ${num_proc} ] ; do
+    # Array containing Station as a number
+#    unset proc_stn
+#    set +A proc_stn $( grep "iophy_mpi rank ip lon lat  $iProc" ${PREFIX}_${Exe_Output} | sed -e "s/iophy_mpi rank ip lon lat //g" | awk ' {print $2}' )
+    # Number of stations produced by processor proc
+#    stationLast=${#proc_stn[*]}
+    # Proc number on 4 digits
+#    j4=${iProc}
+    # Init
+#    iStation=0
+#    while [ ${iStation} -lt ${stationLast} ] ; do
+      # Station number on 3 digits
+#      j3=${proc_stn[${iStation}]}
+      # Extract station
+      # Invert Axis : t,x -> x,t 
+      #               t,pres,x -> x,t,pres
+      # So that we can concatenate along x
+#      IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs -d x,$iStation,$iStation ${prefix_invert}_${j4}.nc ${prefix_invert}_stn_${j3}.nc
+#      (( iStation = iStation + 1 ))
+#    done
+#    (( iProc = iProc + 1 ))
+#  done
+
+  # Concatenate all station along x
+#  IGCM_sys_ncrcat ${prefix_invert}_stn_???.nc ${prefix_invert}_xt.nc
+
+  # Re-invert file
+#  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x ${prefix_invert}_xt.nc ${file_out}
+
+  # END reordering
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_station"
 }
 
Index: trunk/libIGCM/libIGCM_sys/libIGCM_sys_mercurex9.ksh
===================================================================
--- trunk/libIGCM/libIGCM_sys/libIGCM_sys_mercurex9.ksh	(revision 696)
+++ trunk/libIGCM/libIGCM_sys/libIGCM_sys_mercurex9.ksh	(revision 697)
@@ -1405,4 +1405,95 @@
 
   IGCM_debug_PopStack "IGCM_sys_rebuild"
+}
+
+function IGCM_sys_rebuild_station {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_station" -- $@
+  typeset i list_opt file_in file_out prefix_invert list_invert
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_station :" $@
+  fi
+  list_opt=$@
+
+  # Invert Axis : t,x -> x,t 
+  #               t,pres,x -> x,t,pres
+  # So that we can concatenate along x
+  i=0
+  for file_in in ${list_opt} ; do
+    (( i = i + 1))
+    [ ${i} = 1 ] && file_out=${file_in} && continue
+    prefix_invert=$( basename ${file_in} .nc )
+    IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs ${file_in} ${prefix_invert}_xt.nc
+    list_invert[${#list_invert[*]}]=${prefix_invert}_xt.nc
+  done
+
+  # Concatenate
+  IGCM_sys_ncrcat ${list_invert[*]} histstn_xt.nc
+
+  # Re-ivert file
+  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x histstn_xt.nc ${file_out}
+
+  # Station re-ordering is too expansive to be run within libICGM
+  # This is due to (ncpdq - nrcat - ncpdq) I/O sequence.
+  # This re-ordering must be done "in memory" by the cmorization process
+  # Anyway this is the best sequence using (ncpdq - nrcat - ncpdq)
+  # BEGIN reordering
+
+  # Only LMDZ text output contains the exact ordering of the station.
+  # We isolate this in the code below:
+  #  0  38  -157.5000000000000  70.98591549295774
+  #  0  54  27.49999999999999   67.18309859154928
+  #  0  56  -62.50000000000001  82.39436619718309
+  #  0  79  12.49999999999999   78.59154929577466
+  #  0  116 -165.0000000000000  76.05633802816901
+  #  0  117 130.0000000000000   70.98591549295774
+  #  0  118 110.0000000000000   87.46478873239437
+  #  1  40  4.999999999999995   51.97183098591550
+#  typeset iStation iProc list_opt file_in file_out prefix_invert
+#  typeset -Z4 j4
+#  typeset -Z3 j3
+
+#  unset list_opt
+#  set +A list_opt $@
+
+  # Filename after rebuild
+#  file_out=${list_opt[0]}
+  # Prefix of output files
+#  prefix_invert=$( basename ${file_out} .nc )
+  # Number of procs
+#  num_proc=$( grep -i mpi_size ${PREFIX}_${Exe_Output} | wc -l )
+
+#  iProc=0
+#  while [ ${iProc} -lt ${num_proc} ] ; do
+    # Array containing Station as a number
+#    unset proc_stn
+#    set +A proc_stn $( grep "iophy_mpi rank ip lon lat  $iProc" ${PREFIX}_${Exe_Output} | sed -e "s/iophy_mpi rank ip lon lat //g" | awk ' {print $2}' )
+    # Number of stations produced by processor proc
+#    stationLast=${#proc_stn[*]}
+    # Proc number on 4 digits
+#    j4=${iProc}
+    # Init
+#    iStation=0
+#    while [ ${iStation} -lt ${stationLast} ] ; do
+      # Station number on 3 digits
+#      j3=${proc_stn[${iStation}]}
+      # Extract station
+      # Invert Axis : t,x -> x,t 
+      #               t,pres,x -> x,t,pres
+      # So that we can concatenate along x
+#      IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs -d x,$iStation,$iStation ${prefix_invert}_${j4}.nc ${prefix_invert}_stn_${j3}.nc
+#      (( iStation = iStation + 1 ))
+#    done
+#    (( iProc = iProc + 1 ))
+#  done
+
+  # Concatenate all station along x
+#  IGCM_sys_ncrcat ${prefix_invert}_stn_???.nc ${prefix_invert}_xt.nc
+
+  # Re-invert file
+#  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x ${prefix_invert}_xt.nc ${file_out}
+
+  # END reordering
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_station"
 }
 
Index: trunk/libIGCM/libIGCM_sys/libIGCM_sys_obelix.ksh
===================================================================
--- trunk/libIGCM/libIGCM_sys/libIGCM_sys_obelix.ksh	(revision 696)
+++ trunk/libIGCM/libIGCM_sys/libIGCM_sys_obelix.ksh	(revision 697)
@@ -1324,4 +1324,95 @@
 
   IGCM_debug_PopStack "IGCM_sys_rebuild"
+}
+
+function IGCM_sys_rebuild_station {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_station" -- $@
+  typeset i list_opt file_in file_out prefix_invert list_invert
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_station :" $@
+  fi
+  list_opt=$@
+
+  # Invert Axis : t,x -> x,t 
+  #               t,pres,x -> x,t,pres
+  # So that we can concatenate along x
+  i=0
+  for file_in in ${list_opt} ; do
+    (( i = i + 1))
+    [ ${i} = 1 ] && file_out=${file_in} && continue
+    prefix_invert=$( basename ${file_in} .nc )
+    IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs ${file_in} ${prefix_invert}_xt.nc
+    list_invert[${#list_invert[*]}]=${prefix_invert}_xt.nc
+  done
+
+  # Concatenate
+  IGCM_sys_ncrcat ${list_invert[*]} histstn_xt.nc
+
+  # Re-ivert file
+  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x histstn_xt.nc ${file_out}
+
+  # Station re-ordering is too expansive to be run within libICGM
+  # This is due to (ncpdq - nrcat - ncpdq) I/O sequence.
+  # This re-ordering must be done "in memory" by the cmorization process
+  # Anyway this is the best sequence using (ncpdq - nrcat - ncpdq)
+  # BEGIN reordering
+
+  # Only LMDZ text output contains the exact ordering of the station.
+  # We isolate this in the code below:
+  #  0  38  -157.5000000000000  70.98591549295774
+  #  0  54  27.49999999999999   67.18309859154928
+  #  0  56  -62.50000000000001  82.39436619718309
+  #  0  79  12.49999999999999   78.59154929577466
+  #  0  116 -165.0000000000000  76.05633802816901
+  #  0  117 130.0000000000000   70.98591549295774
+  #  0  118 110.0000000000000   87.46478873239437
+  #  1  40  4.999999999999995   51.97183098591550
+#  typeset iStation iProc list_opt file_in file_out prefix_invert
+#  typeset -Z4 j4
+#  typeset -Z3 j3
+
+#  unset list_opt
+#  set +A list_opt $@
+
+  # Filename after rebuild
+#  file_out=${list_opt[0]}
+  # Prefix of output files
+#  prefix_invert=$( basename ${file_out} .nc )
+  # Number of procs
+#  num_proc=$( grep -i mpi_size ${PREFIX}_${Exe_Output} | wc -l )
+
+#  iProc=0
+#  while [ ${iProc} -lt ${num_proc} ] ; do
+    # Array containing Station as a number
+#    unset proc_stn
+#    set +A proc_stn $( grep "iophy_mpi rank ip lon lat  $iProc" ${PREFIX}_${Exe_Output} | sed -e "s/iophy_mpi rank ip lon lat //g" | awk ' {print $2}' )
+    # Number of stations produced by processor proc
+#    stationLast=${#proc_stn[*]}
+    # Proc number on 4 digits
+#    j4=${iProc}
+    # Init
+#    iStation=0
+#    while [ ${iStation} -lt ${stationLast} ] ; do
+      # Station number on 3 digits
+#      j3=${proc_stn[${iStation}]}
+      # Extract station
+      # Invert Axis : t,x -> x,t 
+      #               t,pres,x -> x,t,pres
+      # So that we can concatenate along x
+#      IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs -d x,$iStation,$iStation ${prefix_invert}_${j4}.nc ${prefix_invert}_stn_${j3}.nc
+#      (( iStation = iStation + 1 ))
+#    done
+#    (( iProc = iProc + 1 ))
+#  done
+
+  # Concatenate all station along x
+#  IGCM_sys_ncrcat ${prefix_invert}_stn_???.nc ${prefix_invert}_xt.nc
+
+  # Re-invert file
+#  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x ${prefix_invert}_xt.nc ${file_out}
+
+  # END reordering
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_station"
 }
 
Index: trunk/libIGCM/libIGCM_sys/libIGCM_sys_titane.ksh
===================================================================
--- trunk/libIGCM/libIGCM_sys/libIGCM_sys_titane.ksh	(revision 696)
+++ trunk/libIGCM/libIGCM_sys/libIGCM_sys_titane.ksh	(revision 697)
@@ -1693,4 +1693,95 @@
 }
 
+function IGCM_sys_rebuild_station {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_station" -- $@
+  typeset i list_opt file_in file_out prefix_invert list_invert
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_station :" $@
+  fi
+  list_opt=$@
+
+  # Invert Axis : t,x -> x,t 
+  #               t,pres,x -> x,t,pres
+  # So that we can concatenate along x
+  i=0
+  for file_in in ${list_opt} ; do
+    (( i = i + 1))
+    [ ${i} = 1 ] && file_out=${file_in} && continue
+    prefix_invert=$( basename ${file_in} .nc )
+    IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs ${file_in} ${prefix_invert}_xt.nc
+    list_invert[${#list_invert[*]}]=${prefix_invert}_xt.nc
+  done
+
+  # Concatenate
+  IGCM_sys_ncrcat ${list_invert[*]} histstn_xt.nc
+
+  # Re-ivert file
+  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x histstn_xt.nc ${file_out}
+
+  # Station re-ordering is too expansive to be run within libICGM
+  # This is due to (ncpdq - nrcat - ncpdq) I/O sequence.
+  # This re-ordering must be done "in memory" by the cmorization process
+  # Anyway this is the best sequence using (ncpdq - nrcat - ncpdq)
+  # BEGIN reordering
+
+  # Only LMDZ text output contains the exact ordering of the station.
+  # We isolate this in the code below:
+  #  0  38  -157.5000000000000  70.98591549295774
+  #  0  54  27.49999999999999   67.18309859154928
+  #  0  56  -62.50000000000001  82.39436619718309
+  #  0  79  12.49999999999999   78.59154929577466
+  #  0  116 -165.0000000000000  76.05633802816901
+  #  0  117 130.0000000000000   70.98591549295774
+  #  0  118 110.0000000000000   87.46478873239437
+  #  1  40  4.999999999999995   51.97183098591550
+#  typeset iStation iProc list_opt file_in file_out prefix_invert
+#  typeset -Z4 j4
+#  typeset -Z3 j3
+
+#  unset list_opt
+#  set +A list_opt $@
+
+  # Filename after rebuild
+#  file_out=${list_opt[0]}
+  # Prefix of output files
+#  prefix_invert=$( basename ${file_out} .nc )
+  # Number of procs
+#  num_proc=$( grep -i mpi_size ${PREFIX}_${Exe_Output} | wc -l )
+
+#  iProc=0
+#  while [ ${iProc} -lt ${num_proc} ] ; do
+    # Array containing Station as a number
+#    unset proc_stn
+#    set +A proc_stn $( grep "iophy_mpi rank ip lon lat  $iProc" ${PREFIX}_${Exe_Output} | sed -e "s/iophy_mpi rank ip lon lat //g" | awk ' {print $2}' )
+    # Number of stations produced by processor proc
+#    stationLast=${#proc_stn[*]}
+    # Proc number on 4 digits
+#    j4=${iProc}
+    # Init
+#    iStation=0
+#    while [ ${iStation} -lt ${stationLast} ] ; do
+      # Station number on 3 digits
+#      j3=${proc_stn[${iStation}]}
+      # Extract station
+      # Invert Axis : t,x -> x,t 
+      #               t,pres,x -> x,t,pres
+      # So that we can concatenate along x
+#      IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs -d x,$iStation,$iStation ${prefix_invert}_${j4}.nc ${prefix_invert}_stn_${j3}.nc
+#      (( iStation = iStation + 1 ))
+#    done
+#    (( iProc = iProc + 1 ))
+#  done
+
+  # Concatenate all station along x
+#  IGCM_sys_ncrcat ${prefix_invert}_stn_???.nc ${prefix_invert}_xt.nc
+
+  # Re-invert file
+#  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x ${prefix_invert}_xt.nc ${file_out}
+
+  # END reordering
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_station"
+}
+
 ############################################################
 # Activate Running Environnment Variables
Index: trunk/libIGCM/libIGCM_sys/libIGCM_sys_ulam.ksh
===================================================================
--- trunk/libIGCM/libIGCM_sys/libIGCM_sys_ulam.ksh	(revision 696)
+++ trunk/libIGCM/libIGCM_sys/libIGCM_sys_ulam.ksh	(revision 697)
@@ -1041,4 +1041,96 @@
   IGCM_debug_PopStack "IGCM_sys_rebuild"
 }
+
+function IGCM_sys_rebuild_station {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_station" -- $@
+  typeset i list_opt file_in file_out prefix_invert list_invert
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_station :" $@
+  fi
+  list_opt=$@
+
+  # Invert Axis : t,x -> x,t 
+  #               t,pres,x -> x,t,pres
+  # So that we can concatenate along x
+  i=0
+  for file_in in ${list_opt} ; do
+    (( i = i + 1))
+    [ ${i} = 1 ] && file_out=${file_in} && continue
+    prefix_invert=$( basename ${file_in} .nc )
+    IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs ${file_in} ${prefix_invert}_xt.nc
+    list_invert[${#list_invert[*]}]=${prefix_invert}_xt.nc
+  done
+
+  # Concatenate
+  IGCM_sys_ncrcat ${list_invert[*]} histstn_xt.nc
+
+  # Re-ivert file
+  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x histstn_xt.nc ${file_out}
+
+  # Station re-ordering is too expansive to be run within libICGM
+  # This is due to (ncpdq - nrcat - ncpdq) I/O sequence.
+  # This re-ordering must be done "in memory" by the cmorization process
+  # Anyway this is the best sequence using (ncpdq - nrcat - ncpdq)
+  # BEGIN reordering
+
+  # Only LMDZ text output contains the exact ordering of the station.
+  # We isolate this in the code below:
+  #  0  38  -157.5000000000000  70.98591549295774
+  #  0  54  27.49999999999999   67.18309859154928
+  #  0  56  -62.50000000000001  82.39436619718309
+  #  0  79  12.49999999999999   78.59154929577466
+  #  0  116 -165.0000000000000  76.05633802816901
+  #  0  117 130.0000000000000   70.98591549295774
+  #  0  118 110.0000000000000   87.46478873239437
+  #  1  40  4.999999999999995   51.97183098591550
+#  typeset iStation iProc list_opt file_in file_out prefix_invert
+#  typeset -Z4 j4
+#  typeset -Z3 j3
+
+#  unset list_opt
+#  set +A list_opt $@
+
+  # Filename after rebuild
+#  file_out=${list_opt[0]}
+  # Prefix of output files
+#  prefix_invert=$( basename ${file_out} .nc )
+  # Number of procs
+#  num_proc=$( grep -i mpi_size ${PREFIX}_${Exe_Output} | wc -l )
+
+#  iProc=0
+#  while [ ${iProc} -lt ${num_proc} ] ; do
+    # Array containing Station as a number
+#    unset proc_stn
+#    set +A proc_stn $( grep "iophy_mpi rank ip lon lat  $iProc" ${PREFIX}_${Exe_Output} | sed -e "s/iophy_mpi rank ip lon lat //g" | awk ' {print $2}' )
+    # Number of stations produced by processor proc
+#    stationLast=${#proc_stn[*]}
+    # Proc number on 4 digits
+#    j4=${iProc}
+    # Init
+#    iStation=0
+#    while [ ${iStation} -lt ${stationLast} ] ; do
+      # Station number on 3 digits
+#      j3=${proc_stn[${iStation}]}
+      # Extract station
+      # Invert Axis : t,x -> x,t 
+      #               t,pres,x -> x,t,pres
+      # So that we can concatenate along x
+#      IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs -d x,$iStation,$iStation ${prefix_invert}_${j4}.nc ${prefix_invert}_stn_${j3}.nc
+#      (( iStation = iStation + 1 ))
+#    done
+#    (( iProc = iProc + 1 ))
+#  done
+
+  # Concatenate all station along x
+#  IGCM_sys_ncrcat ${prefix_invert}_stn_???.nc ${prefix_invert}_xt.nc
+
+  # Re-invert file
+#  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x ${prefix_invert}_xt.nc ${file_out}
+
+  # END reordering
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_station"
+}
+
 ##############################################################
 # NCO OPERATOR
Index: trunk/libIGCM/libIGCM_sys/libIGCM_sys_vargas.ksh
===================================================================
--- trunk/libIGCM/libIGCM_sys/libIGCM_sys_vargas.ksh	(revision 696)
+++ trunk/libIGCM/libIGCM_sys/libIGCM_sys_vargas.ksh	(revision 697)
@@ -1340,4 +1340,95 @@
 
   IGCM_debug_PopStack "IGCM_sys_rebuild"
+}
+
+function IGCM_sys_rebuild_station {
+  IGCM_debug_PushStack "IGCM_sys_rebuild_station" -- $@
+  typeset i list_opt file_in file_out prefix_invert list_invert
+  if ( $DEBUG_sys ) ; then
+    echo "IGCM_sys_rebuild_station :" $@
+  fi
+  list_opt=$@
+
+  # Invert Axis : t,x -> x,t 
+  #               t,pres,x -> x,t,pres
+  # So that we can concatenate along x
+  i=0
+  for file_in in ${list_opt} ; do
+    (( i = i + 1))
+    [ ${i} = 1 ] && file_out=${file_in} && continue
+    prefix_invert=$( basename ${file_in} .nc )
+    IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs ${file_in} ${prefix_invert}_xt.nc
+    list_invert[${#list_invert[*]}]=${prefix_invert}_xt.nc
+  done
+
+  # Concatenate
+  IGCM_sys_ncrcat ${list_invert[*]} histstn_xt.nc
+
+  # Re-ivert file
+  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x histstn_xt.nc ${file_out}
+
+  # Station re-ordering is too expansive to be run within libICGM
+  # This is due to (ncpdq - nrcat - ncpdq) I/O sequence.
+  # This re-ordering must be done "in memory" by the cmorization process
+  # Anyway this is the best sequence using (ncpdq - nrcat - ncpdq)
+  # BEGIN reordering
+
+  # Only LMDZ text output contains the exact ordering of the station.
+  # We isolate this in the code below:
+  #  0  38  -157.5000000000000  70.98591549295774
+  #  0  54  27.49999999999999   67.18309859154928
+  #  0  56  -62.50000000000001  82.39436619718309
+  #  0  79  12.49999999999999   78.59154929577466
+  #  0  116 -165.0000000000000  76.05633802816901
+  #  0  117 130.0000000000000   70.98591549295774
+  #  0  118 110.0000000000000   87.46478873239437
+  #  1  40  4.999999999999995   51.97183098591550
+#  typeset iStation iProc list_opt file_in file_out prefix_invert
+#  typeset -Z4 j4
+#  typeset -Z3 j3
+
+#  unset list_opt
+#  set +A list_opt $@
+
+  # Filename after rebuild
+#  file_out=${list_opt[0]}
+  # Prefix of output files
+#  prefix_invert=$( basename ${file_out} .nc )
+  # Number of procs
+#  num_proc=$( grep -i mpi_size ${PREFIX}_${Exe_Output} | wc -l )
+
+#  iProc=0
+#  while [ ${iProc} -lt ${num_proc} ] ; do
+    # Array containing Station as a number
+#    unset proc_stn
+#    set +A proc_stn $( grep "iophy_mpi rank ip lon lat  $iProc" ${PREFIX}_${Exe_Output} | sed -e "s/iophy_mpi rank ip lon lat //g" | awk ' {print $2}' )
+    # Number of stations produced by processor proc
+#    stationLast=${#proc_stn[*]}
+    # Proc number on 4 digits
+#    j4=${iProc}
+    # Init
+#    iStation=0
+#    while [ ${iStation} -lt ${stationLast} ] ; do
+      # Station number on 3 digits
+#      j3=${proc_stn[${iStation}]}
+      # Extract station
+      # Invert Axis : t,x -> x,t 
+      #               t,pres,x -> x,t,pres
+      # So that we can concatenate along x
+#      IGCM_sys_ncpdq -a x,time_counter -a x,time_counter,presnivs -d x,$iStation,$iStation ${prefix_invert}_${j4}.nc ${prefix_invert}_stn_${j3}.nc
+#      (( iStation = iStation + 1 ))
+#    done
+#    (( iProc = iProc + 1 ))
+#  done
+
+  # Concatenate all station along x
+#  IGCM_sys_ncrcat ${prefix_invert}_stn_???.nc ${prefix_invert}_xt.nc
+
+  # Re-invert file
+#  IGCM_sys_ncpdq -a time_counter,x -a time_counter,presnivs,x ${prefix_invert}_xt.nc ${file_out}
+
+  # END reordering
+
+  IGCM_debug_PopStack "IGCM_sys_rebuild_station"
 }
 
