Path: | dc_utils/dccaldefault.f90 |
Last Update: | Sat Oct 17 23:08:58 +0900 2009 |
Authors: | Yasuhiro MORIKAWA |
Version: | $Id: dccaldefault.f90,v 1.2 2009-10-17 14:08:58 morikawa Exp $ |
Tag Name: | $Name: gtool5-20101228-1 $ |
Copyright: | Copyright (C) GFD Dennou Club, 2009-. All rights reserved. |
License: | See COPYRIGHT |
このファイルに記載される手続き群は dc_calendar モジュールから提供されます.
Procedures described in this file are provided from "dc_calendar" module.
Subroutine : | |||
cal : | type(DC_CAL), intent(out)
|
dc_calendar においてデフォルト設定となっている暦を返します. このデフォルトの暦は, dc_calendar_generic#DCCalCreate において省略可能引数 cal を省略して指定された暦が該当します. ただし DCCalCreate が呼び出されていない場合にはグレゴリオ暦となります.
Default calender in "dc_calendar" is returned. The default calender is set by dc_calendar_generic#DCCalCreate without optional argument cal. If the DCCalCreate is called, the calendar becomes Gregorian calendar.
subroutine DCCalDefault1( cal ) ! ! dc_calendar においてデフォルト設定となっている暦を返します. ! このデフォルトの暦は, dc_calendar_generic#DCCalCreate ! において省略可能引数 *cal* を省略して指定された暦が該当します. ! ただし DCCalCreate が呼び出されていない場合にはグレゴリオ暦となります. ! ! Default calender in "dc_calendar" is returned. ! The default calender is set by dc_calendar_generic#DCCalCreate ! without optional argument *cal*. ! If the DCCalCreate is called, the calendar becomes Gregorian calendar. ! use dc_calendar_types, only: DC_CAL, CAL_CYCLIC, CAL_NOLEAP, CAL_JULIAN, CAL_GREGORIAN, CAL_360DAY use dc_calendar_internal, only: default_cal, default_cal_set use dc_message, only: MessageNotify use dc_string, only: LChar use dc_trace, only: BeginSub, EndSub use dc_error, only: StoreError, DC_NOERR, DC_EALREADYINIT, DC_EBADCALTYPE use dc_types, only: STRING, DP implicit none type(DC_CAL), intent(out):: cal ! 暦情報を収めたオブジェクト. ! ! An object that stores information of ! calendar. ! 作業変数 ! Work variables ! type(DC_CAL), pointer:: calp =>null() integer:: stat character(STRING):: cause_c character(*), parameter:: subname = 'DCCalDefault1' continue call BeginSub( subname ) ! オブジェクトのポインタ割付 ! Associate pointer of an object ! calp => default_cal if ( .not. calp % initialized ) call default_cal_set !!$ ! 初期設定のチェック !!$ ! Check initialization !!$ ! !!$ if ( calp % initialized ) then !!$ stat = DC_EALREADYINIT !!$ cause_c = 'DC_CAL' !!$ goto 999 !!$ end if ! 各要素への値の設定 ! Configure elements ! cal % cal_type = calp % cal_type allocate( cal % day_in_month( calp % month_in_year ) ) cal % month_in_year = calp % month_in_year cal % day_in_month = calp % day_in_month cal % hour_in_day = calp % hour_in_day cal % min_in_hour = calp % min_in_hour cal % sec_in_min = calp % sec_in_min ! 終了処理, 例外処理 ! Termination and Exception handling ! cal % initialized = .true. 999 continue nullify( calp ) call EndSub( subname ) end subroutine DCCalDefault1