#include "LONGSTEP_OPTIONS.h"

CBOP
C     !ROUTINE: LONGSTEP_INIT_FIXED

C     !INTERFACE:
      SUBROUTINE LONGSTEP_INIT_FIXED( myThid )

C     !DESCRIPTION:
C     Initialize longstep constant

C     !USES:
      IMPLICIT NONE
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "LONGSTEP_PARAMS.h"

C     !INPUT PARAMETERS:
      INTEGER myThid
CEOP

#ifdef ALLOW_LONGSTEP

C     !LOCAL VARIABLES:
      CHARACTER*(MAX_LEN_MBUF) msgBuf

C     whether to average EmPmR or PmEpR in LS_fwFlux
#ifdef EXACT_CONSERV
      IF ( (nonlinFreeSurf.GT.0 .OR. usingPCoords)
     &     .AND. useRealFreshWaterFlux ) THEN
        LS_usePmEpR = .TRUE.
C     can only do LS_staggerTimeStep if staggerTimeStep
        IF ( staggerTimeStep .AND. LS_whenToSample.LT.2 ) THEN
          WRITE(msgBuf,'(2A)')
     &       ' LONGSTEP: staggerTimeStep with EXACT_CONSERV,',
     &       ' useRealFreshWaterFlux'
          CALL PRINT_ERROR( msgBuf, myThid )
          WRITE(msgBuf,'(2A)')
     &       ' LONGSTEP: and nonlinFreeSurf or PCoords',
     &       ' requires LS_whenToSample=2'
          CALL PRINT_ERROR( msgBuf, myThid )
          STOP 'ABNORMAL END: S/R LONGSTEP_INIT_FIXED'
        ENDIF
      ELSE
#else /* EXACT_CONSERV */
      IF (.TRUE.) THEN
#endif /* EXACT_CONSERV */
        LS_usePmEpR = .FALSE.
      ENDIF

#ifdef ALLOW_DIAGNOSTICS
      IF ( useDiagnostics ) THEN
        CALL LONGSTEP_DIAGNOSTICS_INIT( myThid )
      ENDIF
#endif

#endif /* ALLOW_LONGSTEP */

      RETURN
      END
