C $Header: /u/gcmpack/MITgcm/pkg/ecco/cost_gencost_assignperiod.F,v 1.3 2010/08/29 19:28:50 gforget Exp $
C $Name:  $

#include "COST_CPPOPTIONS.h"

      subroutine COST_GENCOST_ASSIGNPERIOD(
     I                    startofday, startofmonth, startofyear,
     I                    inday,      inmonth,      inyear,
     I                    endofday,   endofmonth,   endofyear,
     O                    startofgen, endofgen,     ingen,
     O                    sum1gen,    genrec,
     I                    mythid )

c     ==================================================================
c     SUBROUTINE cost_gencost_assignperiod
c     ==================================================================

      implicit none

c     == global variables ==

#include "EEPARAMS.h"
#include "SIZE.h"
#include "PARAMS.h"
#include "optim.h"
#include "ecco_cost.h"
#include "ctrl_dummy.h"

c     == routine arguments ==

      logical startofday
      logical startofmonth
      logical startofyear
      logical inday
      logical inmonth
      logical inyear
      logical endofday
      logical endofmonth
      logical endofyear
      logical startofgen(NGENCOST)
      logical endofgen(NGENCOST)
      logical ingen(NGENCOST)
      integer sum1gen(NGENCOST)
      integer genrec(NGENCOST)

      integer mythid

#ifdef ALLOW_GENCOST_CONTRIBUTION
c     == local variables ==

      integer num_var

c     == end of interface ==

      do num_var = 1, NGENCOST
         if ( gencost_avgperiod(num_var) .EQ. 'day' .OR.
     &        gencost_avgperiod(num_var) .EQ. 'DAY' ) then
            startofgen(num_var) = startofday
            endofgen(num_var)   = endofday
            ingen(num_var)      = inday
            sum1gen(num_var)    = sum1day
            genrec(num_var)     = dayrec
         else if ( gencost_avgperiod(num_var) .EQ. 'month' .OR.
     &        gencost_avgperiod(num_var) .EQ. 'MONTH' ) then
            startofgen(num_var) = startofmonth
            endofgen(num_var)   = endofmonth
            ingen(num_var)      = inmonth
            sum1gen(num_var)    = sum1mon
            genrec(num_var)     = monrec
         else if ( gencost_avgperiod(num_var) .EQ. 'year' .OR.
     &        gencost_avgperiod(num_var) .EQ. 'YEAR' ) then
            startofgen(num_var) = startofyear
            endofgen(num_var)   = endofyear
            ingen(num_var)      = inyear
            sum1gen(num_var)    = sum1year
            genrec(num_var)     = yearrec
#ifndef ALLOW_GENCOST_FREEFORM
         else
            STOP 'gencost_avgperiod wrongly specified'
#endif
         end


if end


do #endif /* ALLOW_GENCOST_CONTRIBUTION */ end