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
* v744 11/2011 *acm* Issue 1906: If PROLEPTIC_GREGORIAN is given then 
*                  override mixed-gregorian calendar handling. 
*              *kms* allowed_calendars size a multiple of 4 to eliminate need for padding
* v6   1/2020 *acm* Getting error-reporting correct, logical time_err
*                   set when an error was reported when translating iso-times

C	*******************************************************************
C 	Parameters dimensioning calendar data structures
C	*******************************************************************
	logical		time_err
	integer		max_calendars, mxcals,
     .			max_months, mxmnths,
     .			max_days, mxdays,
     .			calendar_id
	parameter      (mxcals  = 6,
     .			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*20	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		proleptic
        integer		noleap
        integer		julian
        integer		d360
        integer		all_leap
