C 	calendar.decl
C
C *acm* 12/00  Split off from calendar.cmn
C  * acm * declarations for individual calendar attributes.
* V68  *acm* 1/12  changes for double-precision ferret, single-precision pplus
* *acm* 1/13/12 For DP Ferret/ SP Pplus: explicitly declare REALs 
*               as single-precision

C	*******************************************************************
C 	Parameters dimensioning calendar data structures
C	*******************************************************************
	integer		max_calendars, mxcals,
     .			max_months, mxmnths,
     .			max_days, mxdays,
     .			calendar_id
	parameter      (mxcals  = 5,
     .			mxmnths = 12,
     .			mxdays  = 366)

C	*******************************************************************
C	Information about each calendar
C	*******************************************************************
	integer		num_months, 
     .                  num_days,
     .			days_before_month(mxmnths),
     .			month_by_day(mxdays),
     .			days_in_month(mxmnths)

	character*3	month_names(mxmnths)


C	*******************************************************************
C	Calendar names as recognized (NetCDF standards, plus a couple local ones)
C	*******************************************************************
	character*16	allowed_calendars(mxcals)
	
C	*******************************************************************
C	Variables with specs for all calendars.  These define each calendar
C	where month and year length are constant.  Exceptions as in the
C	Gregorian calendar (in leap years) are handled in individual
C	date/time subroutines: see these for that exception handling --
C	
C        fmt/src/tm_break_date.F
C	 fmt/src/tm_secs_to_date.F
C	 fmt/src/tm_secs_from_bc.F
C	 ppl/plotlib/numdm1.F
C	*******************************************************************
	integer		cals_num_days(mxcals),
     .			cals_num_months(mxcals),
     .			cals_days_in_month(mxmnths,mxcals),
     .			cals_days_before_month(mxmnths,mxcals),
     .			cals_month_by_day(mxdays,mxcals)

	REAL*4		cals_yeardays(mxcals)

	character*3	cals_month_names(mxmnths,mxcals)

C	*******************************************************************
C	Integers below have calendar names, see calendar_blkdat.F
C	for value assignments.  They are used as calendar indices.
C	*******************************************************************
	integer		gregorian
        integer		noleap
        integer		julian
        integer		d360
        integer		all_leap
