C $Header: /u/gcmpack/MITgcm/pkg/fizhi/fizhi_diagalarms.F,v 1.5 2005/10/14 16:58:33 molod Exp $
C $Name:  $

#include "FIZHI_OPTIONS.h"
      subroutine FIZHI_DIAGALARMS (myThid)

C***********************************************************************        
C  Purpose                                                                      
C  -------                                                                      
C     Routine to Set Alarms for diagnostic output
C
C  Argument Description                                                         
C  --------------------                                                          
C     myThid .... Process ID
C
C NOTE: This routine ASSUMES that fizhi_init_fixed has been called
C       IT WILL NOT WORK OTHERWISE
C***********************************************************************        
      implicit none
#include "SIZE.h"
#include "EEPARAMS.h"
#include "PARAMS.h"
#include "DIAGNOSTICS_SIZE.h"
#include "DIAGNOSTICS.h"
#include "chronos.h"

c Input Parameters
c ----------------
      integer  myThid

c Local variables
c -------------------
      integer  nhmsf, n, nincr 
      integer mmdd,hhmmss,nsecf2
      character *9 tagname
      integer  nymdb,nhmsb
      _RL absfreq

c Set Alarm Clocks
c ----------------
c To Set Begin Time for Alarm Clocks:
c  Increment  < 1 month - counting starts at model start time
c  Increment >= 1 month - counting starts at beginning of start month
c ----------------------------------------------------------------------

C-    2D/3D field diagnostics:
      do n = 1,nlists
       absfreq = abs(freq(n))
       if(absfreq.lt.100.) then
        nymdb = nymd
        nhmsb = nhms
       else
        nymdb = int(nymd/100) * 100 + 1
        nhmsb = 0
       endif
       write(tagname,'(A,I2.2)')'diagtag',n
       mmdd = int(absfreq)
       hhmmss = int((absfreq - int(absfreq))*1.e6)
       nincr = mmdd * 1.e6 + hhmmss
       call SET_ALARM(tagname,nymdb,nhmsb,nincr)
      enddo

C-    Global/Regional statistics diagnostics:
      do n = 1,diagSt_nbLists
       absfreq = abs(diagSt_freq(n))
       if(absfreq.lt.100.) then
        nymdb = nymd
        nhmsb = nhms
       else
        nymdb = int(nymd/100) * 100 + 1
        nhmsb = 0
       endif
       write(tagname,'(A,I2.2)')'diagStg',n
       mmdd = int(absfreq)
       hhmmss = int((absfreq - int(absfreq))*1.e6)
       nincr = mmdd * 1.e6 + hhmmss
       call SET_ALARM(tagname,nymdb,nhmsb,nincr)
      enddo

      return
      end