SCALE-RM
Functions/Subroutines | Variables
scale_calendar Module Reference

module CALENDAR More...

Functions/Subroutines

subroutine, public calendar_setup
 Setup. More...
 
subroutine, public calendar_getdayofyear (DayOfYear, iyear)
 Get day of year. More...
 
subroutine, public calendar_date2daysec (absday, abssec, ymdhms, subsec, offset_year)
 Convert from gregorian date to absolute day/second. More...
 
subroutine, public calendar_daysec2date (ymdhms, subsec, absday, abssec, offset_year)
 Convert from gregorian date to absolute day/second. More...
 
subroutine, public calendar_ymd2absday (absday, gyear, gmonth, gday, oyear)
 Convert from gregorian date to absolute day, DAY 0 is AD1/1/1. More...
 
subroutine, public calendar_hms2abssec (abssec, hour, minute, second, subsec)
 Hour, minute, second, subsecond -> absolute second. More...
 
subroutine, public calendar_adjust_daysec (absday, abssec)
 Adjust day and second. More...
 
real(dp) function, public calendar_combine_daysec (absday, abssec)
 Combine day and second. More...
 
subroutine, public calendar_unit2sec (second, value, unit)
 Convert several units to second. More...
 
subroutine, public calendar_sec2unit (value, second, unit)
 Convert several second to specified unit. More...
 
real(dp) function, public calendar_cfunits2sec (cftime, cfunits, offset_year, startdaysec)
 Convert time in units of the CF convention to second. More...
 
subroutine, public calendar_date2char (chardate, ymdhms, subsec)
 Convert from gregorian date to absolute day/second. More...
 
subroutine, public calendar_get_name (name)
 

Variables

integer, parameter, public i_year = 1
 [index] year More...
 
integer, parameter, public i_month = 2
 [index] month More...
 
integer, parameter, public i_day = 3
 [index] day More...
 
integer, parameter, public i_hour = 4
 [index] hour More...
 
integer, parameter, public i_min = 5
 [index] minute More...
 
integer, parameter, public i_sec = 6
 [index] second More...
 

Detailed Description

module CALENDAR

Description
gregorian calendar module this module is available in gregorian calendar date
Author
Team SCALE
NAMELIST
  • PARAM_CALENDAR
    nametypedefault valuecomment
    CALENDAR_360DAYS logical .false.
    CALENDAR_365DAYS logical .false.
    DEBUG logical .false.

History Output
No history output

Function/Subroutine Documentation

◆ calendar_setup()

subroutine, public scale_calendar::calendar_setup

Setup.

Definition at line 89 of file scale_calendar.F90.

89  use scale_prc, only: &
90  prc_abort
91  implicit none
92 
93  namelist / param_calendar / &
94  calendar_360days, &
95  calendar_365days, &
96  debug
97 
98  integer :: ierr
99  !---------------------------------------------------------------------------
100 
101  log_newline
102  log_info("CALENDAR_setup",*) 'Setup'
103 
104  !--- read namelist
105  rewind(io_fid_conf)
106  read(io_fid_conf,nml=param_calendar,iostat=ierr)
107  if( ierr < 0 ) then !--- missing
108  log_info("CALENDAR_setup",*) 'Not found namelist. Default used.'
109  elseif( ierr > 0 ) then !--- fatal error
110  log_error("CALENDAR_setup",*) 'Not appropriate names in namelist PARAM_CALENDAR. Check!'
111  call prc_abort
112  endif
113  log_nml(param_calendar)
114 
115  if ( calendar_360days ) then
116  calendar_doi = 360.0_dp
117  elseif( calendar_365days ) then
118  calendar_doi = 365.0_dp
119  endif
120 
121  log_newline
122  log_info("CALENDAR_setup",*) 'Calendar settings'
123  if ( calendar_360days ) then
124  log_info_cont(*) 'DayOfYear = 360 : ideal setting'
125  elseif( calendar_365days ) then
126  log_info_cont(*) 'DayOfYear = 365 : ideal setting'
127  else
128  log_info_cont(*) 'DayOfYear = 365 or 366 : Gregorian calendar'
129  endif
130 
131  return

References scale_io::io_fid_conf, and scale_prc::prc_abort().

Referenced by mod_rm_driver::rm_driver(), and mod_rm_prep::rm_prep().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calendar_getdayofyear()

subroutine, public scale_calendar::calendar_getdayofyear ( real(dp), intent(out)  DayOfYear,
integer, intent(in)  iyear 
)

Get day of year.

Definition at line 139 of file scale_calendar.F90.

139  implicit none
140 
141  real(DP), intent(out) :: DayOfYear ! # of day of year
142  integer, intent(in) :: iyear ! current year
143  !---------------------------------------------------------------------------
144 
145  dayofyear = calendar_doi
146  if( checkleap(iyear) ) dayofyear = calendar_doi + 1.0_dp
147 
148  return

Referenced by scale_atmos_solarins::atmos_solarins_ecliptic_longitude().

Here is the caller graph for this function:

◆ calendar_date2daysec()

subroutine, public scale_calendar::calendar_date2daysec ( integer, intent(out)  absday,
real(dp), intent(out)  abssec,
integer, dimension(6), intent(in)  ymdhms,
real(dp), intent(in)  subsec,
integer, intent(in)  offset_year 
)

Convert from gregorian date to absolute day/second.

Parameters
[out]absdayabsolute day
[out]abssecabsolute second
[in]ymdhmsdate
[in]subsecsubsecond
[in]offset_yearoffset year

Definition at line 159 of file scale_calendar.F90.

159  implicit none
160 
161  integer, intent(out) :: absday
162  real(DP), intent(out) :: abssec
163  integer, intent(in) :: ymdhms(6)
164  real(DP), intent(in) :: subsec
165  integer, intent(in) :: offset_year
166  !---------------------------------------------------------------------------
167 
168  call calendar_ymd2absday( absday, & ! [OUT]
169  ymdhms(i_year), & ! [IN]
170  ymdhms(i_month), & ! [IN]
171  ymdhms(i_day), & ! [IN]
172  offset_year ) ! [IN]
173 
174  call calendar_hms2abssec( abssec, & ! [OUT]
175  ymdhms(i_hour), & ! [IN]
176  ymdhms(i_min), & ! [IN]
177  ymdhms(i_sec), & ! [IN]
178  subsec ) ! [IN]
179 
180  return

References calendar_hms2abssec(), calendar_ymd2absday(), i_day, i_hour, i_min, i_month, i_sec, and i_year.

Referenced by mod_admin_time::admin_time_setup(), mod_atmos_bnd_driver::atmos_boundary_driver_set(), mod_atmos_bnd_driver::atmos_boundary_set_file(), scale_atmos_phy_rd_profile::atmos_phy_rd_profile_read(), scale_atmos_phy_rd_profile::atmos_phy_rd_profile_setup(), calendar_cfunits2sec(), scale_file_external_input::file_external_input_regist(), and scale_file_external_input::file_external_input_update_3d().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calendar_daysec2date()

subroutine, public scale_calendar::calendar_daysec2date ( integer, dimension(6), intent(out)  ymdhms,
real(dp), intent(out)  subsec,
integer, intent(in)  absday,
real(dp), intent(in)  abssec,
integer, intent(in)  offset_year 
)

Convert from gregorian date to absolute day/second.

Parameters
[out]ymdhmsdate
[out]subsecsubsecond
[in]absdayabsolute day
[in]abssecabsolute second
[in]offset_yearoffset year

Definition at line 191 of file scale_calendar.F90.

191  implicit none
192 
193  integer, intent(out) :: ymdhms(6)
194  real(DP), intent(out) :: subsec
195  integer, intent(in) :: absday
196  real(DP), intent(in) :: abssec
197  integer, intent(in) :: offset_year
198  !---------------------------------------------------------------------------
199 
200  call calendar_absday2ymd( ymdhms(i_year), & ! [OUT]
201  ymdhms(i_month), & ! [OUT]
202  ymdhms(i_day), & ! [OUT]
203  absday, & ! [IN]
204  offset_year ) ! [IN]
205 
206  call calendar_abssec2hms( ymdhms(i_hour), & ! [OUT]
207  ymdhms(i_min), & ! [OUT]
208  ymdhms(i_sec), & ! [OUT]
209  subsec, & ! [OUT]
210  abssec ) ! [IN]
211 
212  return

References i_day, i_hour, i_min, i_month, i_sec, and i_year.

Referenced by mod_admin_time::admin_time_advance(), mod_admin_time::admin_time_setup(), scale_file_external_input::file_external_input_regist(), and scale_file_external_input::file_external_input_update_3d().

Here is the caller graph for this function:

◆ calendar_ymd2absday()

subroutine, public scale_calendar::calendar_ymd2absday ( integer, intent(out)  absday,
integer, intent(in)  gyear,
integer, intent(in)  gmonth,
integer, intent(in)  gday,
integer, intent(in)  oyear 
)

Convert from gregorian date to absolute day, DAY 0 is AD1/1/1.

Parameters
[out]absdayabsolute day
[in]gyearyear
[in]gmonthmonth
[in]gdayday
[in]oyearoffset year

Definition at line 223 of file scale_calendar.F90.

223  implicit none
224 
225  integer, intent(out) :: absday
226  integer, intent(in) :: gyear
227  integer, intent(in) :: gmonth
228  integer, intent(in) :: gday
229  integer, intent(in) :: oyear
230 
231  integer :: gyear_mod, gmonth_mod
232  integer :: yearday, monthday
233  integer :: m, ileap
234  !---------------------------------------------------------------------------
235 
236  gmonth_mod = mod( gmonth-1, 12 ) + 1
237  gyear_mod = gyear + ( gmonth-gmonth_mod ) / 12
238 
239  if ( calendar_360days .OR. calendar_365days ) then
240  yearday = int( calendar_doi * ( gyear_mod - oyear ) )
241  else
242  yearday = int( calendar_doi * ( gyear_mod - oyear ) ) &
243  + int( real(gyear_mod-1,kind=dp) / 4.0_dp ) &
244  - int( real(gyear_mod-1,kind=dp) / 100.0_dp ) &
245  + int( real(gyear_mod-1,kind=dp) / 400.0_dp ) &
246  - int( real(oyear -1,kind=dp) / 4.0_dp ) &
247  + int( real(oyear -1,kind=dp) / 100.0_dp ) &
248  - int( real(oyear -1,kind=dp) / 400.0_dp )
249  endif
250 
251  ileap = i_nonleapyear
252  if( checkleap(gyear_mod) ) ileap = i_leapyear
253  if( calendar_360days ) ileap = i_360days
254 
255  monthday = 0
256  do m = 1, gmonth_mod-1
257  monthday = monthday + dayofmonth(m,ileap)
258  enddo
259 
260  absday = yearday + monthday + gday - 1
261 
262  return

References scale_precision::dp.

Referenced by scale_atmos_solarins::atmos_solarins_ecliptic_longitude(), calendar_date2char(), and calendar_date2daysec().

Here is the caller graph for this function:

◆ calendar_hms2abssec()

subroutine, public scale_calendar::calendar_hms2abssec ( real(dp), intent(out)  abssec,
integer, intent(in)  hour,
integer, intent(in)  minute,
integer, intent(in)  second,
real(dp), intent(in)  subsec 
)

Hour, minute, second, subsecond -> absolute second.

Parameters
[out]abssecabsolute second
[in]subsecsubsecond

Definition at line 322 of file scale_calendar.F90.

322  implicit none
323 
324  real(DP), intent(out) :: abssec
325  integer, intent(in) :: hour
326  integer, intent(in) :: minute
327  integer, intent(in) :: second
328  real(DP), intent(in) :: subsec
329  !---------------------------------------------------------------------------
330 
331  abssec = real(hour, kind=dp) * calendar_min * calendar_sec &
332  + real(minute,kind=dp) * calendar_sec &
333  + real(second,kind=dp) &
334  + subsec
335 
336  return

References scale_precision::dp.

Referenced by scale_atmos_solarins::atmos_solarins_ecliptic_longitude(), and calendar_date2daysec().

Here is the caller graph for this function:

◆ calendar_adjust_daysec()

subroutine, public scale_calendar::calendar_adjust_daysec ( integer, intent(inout)  absday,
real(dp), intent(inout)  abssec 
)

Adjust day and second.

Parameters
[in,out]absdayabsolute day
[in,out]abssecabsolute second

Definition at line 380 of file scale_calendar.F90.

380  implicit none
381 
382  integer, intent(inout) :: absday
383  real(DP), intent(inout) :: abssec
384 
385  integer :: addday
386  !---------------------------------------------------------------------------
387 
388  addday = int( abssec / ( calendar_hour * calendar_min * calendar_sec ) )
389 
390  absday = absday + addday
391 
392  abssec = abssec - real(addday,kind=dp) * calendar_hour * calendar_min * calendar_sec
393 
394  if ( abssec < 0.0_dp ) then
395  absday = absday - 1
396  abssec = abssec + calendar_hour * calendar_min * calendar_sec
397  endif
398 
399  return

References scale_precision::dp.

Referenced by mod_admin_time::admin_time_advance(), mod_admin_time::admin_time_setup(), scale_file_external_input::file_external_input_regist(), and scale_file_external_input::file_external_input_update_3d().

Here is the caller graph for this function:

◆ calendar_combine_daysec()

real(dp) function, public scale_calendar::calendar_combine_daysec ( integer, intent(in)  absday,
real(dp), intent(in)  abssec 
)

Combine day and second.

Parameters
[in]absdayabsolute day
[in]abssecabsolute second
Returns
absolute day.second

Definition at line 405 of file scale_calendar.F90.

405  implicit none
406 
407  integer, intent(in) :: absday
408  real(DP), intent(in) :: abssec
409  real(DP) :: daysec
410  !---------------------------------------------------------------------------
411 
412  daysec = real(absday,kind=dp) * calendar_sec * calendar_min * calendar_hour &
413  + abssec
414 
415  return

References scale_precision::dp.

Referenced by mod_admin_time::admin_time_advance(), mod_admin_time::admin_time_setup(), mod_atmos_bnd_driver::atmos_boundary_driver_set(), mod_atmos_bnd_driver::atmos_boundary_set_file(), calendar_cfunits2sec(), scale_file_external_input::file_external_input_regist(), and scale_file_external_input::file_external_input_update_3d().

Here is the caller graph for this function:

◆ calendar_unit2sec()

subroutine, public scale_calendar::calendar_unit2sec ( real(dp), intent(out)  second,
real(dp), intent(in)  value,
character(len=*), intent(in)  unit 
)

Convert several units to second.

Parameters
[in]unitvariable unit

Definition at line 424 of file scale_calendar.F90.

424  use scale_prc, only: &
425  prc_abort
426  implicit none
427 
428  real(DP), intent(out) :: second
429  real(DP), intent(in) :: value
430  character(len=*), intent(in) :: unit
431  !---------------------------------------------------------------------------
432 
433  select case(unit)
434  case('MSEC')
435  second = value * 1.e-3_dp
436  case('SEC', 'seconds')
437  second = value
438  case('MIN')
439  second = value * calendar_sec
440  case('HOUR')
441  second = value * calendar_sec * calendar_min
442  case('DAY')
443  second = value * calendar_sec * calendar_min * calendar_hour
444  case default
445  log_error("CALENDAR_unit2sec",*) 'Unsupported UNIT: ', trim(unit), ', ', value
446  call prc_abort
447  endselect
448 
449  return

References scale_prc::prc_abort().

Referenced by mod_admin_time::admin_time_setup(), calendar_cfunits2sec(), scale_file_history::file_history_setup(), scale_land_dyn_bucket::land_dyn_bucket_setup(), scale_ocean_dyn_slab::ocean_dyn_slab_setup(), and scale_ocean_phy_ice_simple::ocean_phy_ice_setup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calendar_sec2unit()

subroutine, public scale_calendar::calendar_sec2unit ( real(dp), intent(out)  value,
real(dp), intent(in)  second,
character(len=*), intent(in)  unit 
)

Convert several second to specified unit.

Definition at line 458 of file scale_calendar.F90.

458  use scale_prc, only: &
459  prc_abort
460  implicit none
461 
462  real(DP), intent(out) :: value
463  real(DP), intent( in) :: second
464  character(len=*), intent( in) :: unit
465  !---------------------------------------------------------------------------
466 
467  select case(trim(unit))
468  case('MSEC', 'msec')
469  value = second / 1.0e-3_dp
470  case('SEC', 'seconds', 'sec', 's')
471  value = second
472  case('MIN', 'mins', 'min')
473  value = second / calendar_sec
474  case('HOUR', 'hours', 'hour', 'h')
475  value = second / (calendar_sec * calendar_min)
476  case('DAY', 'days', 'day')
477  value = second / (calendar_sec * calendar_min * calendar_hour)
478  case default
479  log_error("CALENDAR_sec2unit",*) 'Unsupported UNIT: ', trim(unit), ', ', value
480  call prc_abort
481  endselect
482 

References scale_prc::prc_abort().

Referenced by scale_file_history::file_history_set_attribute_double().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calendar_cfunits2sec()

real(dp) function, public scale_calendar::calendar_cfunits2sec ( real(dp), intent(in)  cftime,
character(len=*), intent(in)  cfunits,
integer, intent(in)  offset_year,
real(dp), intent(in), optional  startdaysec 
)

Convert time in units of the CF convention to second.

Definition at line 488 of file scale_calendar.F90.

488  use scale_prc, only: &
489  prc_abort
490  implicit none
491 
492  real(DP), intent(in) :: cftime
493  character(len=*), intent(in) :: cfunits
494  integer, intent(in) :: offset_year
495  real(DP), intent(in), optional :: startdaysec
496  real(DP) :: sec
497 
498  character(len=H_MID) :: tunit
499  character(len=H_MID) :: buf
500 
501  integer :: date(6)
502  integer :: day
503  real(DP) :: sec0
504 
505  integer :: l
506 
507  intrinsic index
508  !---------------------------------------------------------------------------
509 
510  l = index( cfunits, " since " )
511  if ( l > 1 ) then ! untis is under the CF convension
512  tunit = cfunits(1:l-1)
513  buf = cfunits(l+7:)
514 
515  l = index(buf,"-")
516  if ( l /= 5 ) then
517  log_error("CALENDAR_CFunits2sec",*) 'units for time is invalid (year)'
518  log_error_cont(*) trim(cfunits)
519  log_error_cont(*) trim(buf)
520  call prc_abort
521  end if
522  read(buf(1:4),*) date(1) ! year
523  buf = buf(6:)
524 
525  l = index(buf,"-")
526  if ( l /= 3 ) then
527  log_error("CALENDAR_CFunits2sec",*) 'units for time is invalid (month)'
528  log_error_cont(*) trim(cfunits)
529  log_error_cont(*) trim(buf)
530  call prc_abort
531  end if
532  read(buf(1:2),*) date(2) ! month
533  buf = buf(4:)
534 
535  l = index(buf," ")
536  if ( l /= 3 ) then
537  log_error("CALENDAR_CFunits2sec",*) 'units for time is invalid (day)'
538  log_error_cont(*) trim(cfunits)
539  log_error_cont(*) trim(buf)
540  call prc_abort
541  end if
542  read(buf(1:2),*) date(3) ! day
543  buf = buf(4:)
544 
545  l = index(buf,":")
546  if ( l /= 3 ) then
547  log_error("CALENDAR_CFunits2sec",*) 'units for time is invalid (hour)'
548  log_error_cont(*) trim(cfunits)
549  log_error_cont(*) trim(buf)
550  call prc_abort
551  end if
552  read(buf(1:2),*) date(4) ! hour
553  buf = buf(4:)
554 
555  l = index(buf,":")
556  if ( l /= 3 ) then
557  log_error("CALENDAR_CFunits2sec",*) 'units for time is invalid (min)'
558  log_error_cont(*) trim(cfunits)
559  log_error_cont(*) trim(buf)
560  call prc_abort
561  end if
562  read(buf(1:2),*) date(5) ! min
563  buf = buf(4:)
564 
565  if ( len_trim(buf) /= 2 ) then
566  log_error("CALENDAR_CFunits2sec",*) 'units for time is invalid (sec)'
567  log_error_cont(*) trim(cfunits)
568  log_error_cont(*) trim(buf)
569  log_error_cont(*) len_trim(buf)
570  call prc_abort
571  end if
572  read(buf(1:2),*) date(6) ! sec
573 
574  call calendar_date2daysec( day, & ! (out)
575  sec0, & ! (out)
576  date(:), & ! (in)
577  0.0_dp, & ! (in)
578  offset_year ) ! (in)
579 
580  sec0 = calendar_combine_daysec( day, sec0 )
581  else
582  tunit = cfunits
583  if ( present(startdaysec) ) then
584  sec0 = startdaysec
585  else
586  sec0 = 0.0_dp
587  end if
588  end if
589 
590  call calendar_unit2sec( sec, cftime, tunit )
591 
592  sec = sec0 + sec
593 
594  return

References calendar_combine_daysec(), calendar_date2daysec(), calendar_unit2sec(), and scale_prc::prc_abort().

Referenced by mod_admin_time::admin_time_setup(), scale_file_external_input::file_external_input_regist(), and scale_file_external_input::file_external_input_update_3d().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calendar_date2char()

subroutine, public scale_calendar::calendar_date2char ( character(len=27), intent(out)  chardate,
integer, dimension(6), intent(in)  ymdhms,
real(dp), intent(in)  subsec 
)

Convert from gregorian date to absolute day/second.

Parameters
[out]chardateformatted date character
[in]ymdhmsdate
[in]subsecsubsecond

Definition at line 603 of file scale_calendar.F90.

603  implicit none
604 
605  character(len=27), intent(out) :: chardate
606  integer, intent(in) :: ymdhms(6)
607  real(DP), intent(in) :: subsec
608  !---------------------------------------------------------------------------
609 
610  write(chardate,'(I4.4,A1,I2.2,A1,I2.2,A1,I2.2,A1,I2.2,A1,I2.2,A2,F6.3)') &
611  ymdhms(1),'/',ymdhms(2),'/',ymdhms(3),' ', &
612  ymdhms(4),':',ymdhms(5),':',ymdhms(6),' +', &
613  subsec
614 
615  return

References calendar_ymd2absday(), scale_precision::dp, i_day, i_hour, i_min, i_month, i_sec, and i_year.

Referenced by mod_admin_time::admin_time_checkstate(), mod_admin_time::admin_time_setup(), and mod_atmos_bnd_driver::atmos_boundary_driver_set().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calendar_get_name()

subroutine, public scale_calendar::calendar_get_name ( character(len=*), intent(out)  name)

Definition at line 715 of file scale_calendar.F90.

715  character(len=*), intent(out) :: name
716 
717  if ( calendar_360days ) then
718  name = "360_day"
719  elseif( calendar_365days ) then
720  name = "365_day"
721  else
722  name = "gregorian"
723  endif
724 
725  return

Referenced by scale_file_cartesc::file_cartesc_create(), scale_file_history_cartesc::file_history_cartesc_setup(), and scale_file_history_cartesc::file_history_cartesc_truncate_3d().

Here is the caller graph for this function:

Variable Documentation

◆ i_year

integer, parameter, public scale_calendar::i_year = 1

◆ i_month

integer, parameter, public scale_calendar::i_month = 2

◆ i_day

integer, parameter, public scale_calendar::i_day = 3

◆ i_hour

integer, parameter, public scale_calendar::i_hour = 4

[index] hour

Definition at line 48 of file scale_calendar.F90.

48  integer, public, parameter :: I_hour = 4

Referenced by scale_atmos_solarins::atmos_solarins_ecliptic_longitude(), calendar_date2char(), calendar_date2daysec(), and calendar_daysec2date().

◆ i_min

integer, parameter, public scale_calendar::i_min = 5

[index] minute

Definition at line 49 of file scale_calendar.F90.

49  integer, public, parameter :: I_min = 5

Referenced by scale_atmos_solarins::atmos_solarins_ecliptic_longitude(), calendar_date2char(), calendar_date2daysec(), and calendar_daysec2date().

◆ i_sec

integer, parameter, public scale_calendar::i_sec = 6

[index] second

Definition at line 50 of file scale_calendar.F90.

50  integer, public, parameter :: I_sec = 6

Referenced by scale_atmos_solarins::atmos_solarins_ecliptic_longitude(), calendar_date2char(), calendar_date2daysec(), and calendar_daysec2date().

scale_prc::prc_abort
subroutine, public prc_abort
Abort Process.
Definition: scale_prc.F90:342
scale_calendar::i_min
integer, parameter, public i_min
[index] minute
Definition: scale_calendar.F90:49
scale_calendar::calendar_hms2abssec
subroutine, public calendar_hms2abssec(abssec, hour, minute, second, subsec)
Hour, minute, second, subsecond -> absolute second.
Definition: scale_calendar.F90:322
scale_prc
module PROCESS
Definition: scale_prc.F90:11
scale_calendar::calendar_ymd2absday
subroutine, public calendar_ymd2absday(absday, gyear, gmonth, gday, oyear)
Convert from gregorian date to absolute day, DAY 0 is AD1/1/1.
Definition: scale_calendar.F90:223
scale_calendar::i_hour
integer, parameter, public i_hour
[index] hour
Definition: scale_calendar.F90:48
scale_calendar::i_month
integer, parameter, public i_month
[index] month
Definition: scale_calendar.F90:46
scale_calendar::i_year
integer, parameter, public i_year
[index] year
Definition: scale_calendar.F90:45
scale_calendar::i_day
integer, parameter, public i_day
[index] day
Definition: scale_calendar.F90:47
scale_calendar::i_sec
integer, parameter, public i_sec
[index] second
Definition: scale_calendar.F90:50