C $Header: /u/gcmpack/MITgcm/pkg/mdsio/mdsio_buffertors.F,v 1.1 2008/12/30 01:54:26 jmc Exp $
C $Name:  $

#include "CPP_EEOPTIONS.h"

C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
CBOP 0
C !ROUTINE: MDS_BUFFERtoRS

C !INTERFACE:
      SUBROUTINE MDS_BUFFERTORS( vecBuf, arr, narr, copyTo, myThid )

C !DESCRIPTION:
C Copy from Buffer to RS array "arr", if copyTo=T ; otherwise do the reverse

C !USES:
      IMPLICIT NONE
c#include "EEPARAMS.h"

C !INPUT/OUTPUT PARAMETERS:
C vecBuf ( RL )    :: buffer vector array (Input/Output if copyTo=T/F)
C arr    ( RS )    :: model  vector array (Output/Input if copyTo=T/F)
C narr   (integer) :: dimension of buffer & model vector array
C copyTo (logical) :: if =T, copy buffer -> model ; if =F: copy buffer <- model
C myThid (integer) :: my Thread Id number
      INTEGER narr
      _RL vecBuf(narr)
      _RS arr(narr)
      LOGICAL copyTo
      INTEGER myThid
CEOP

C !LOCAL VARIABLES:
      INTEGER L

C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|

      IF (copyTo) THEN
        DO L=1,narr
         arr(L) = vecBuf(L)
        ENDDO
      ELSE
        DO L=1,narr
          vecBuf(L) = arr(L)
        ENDDO
      ENDIF

      RETURN
      END