29   character(STRING):: result
    37   integer, 
intent(in):: year                     
    38   integer, 
intent(in):: month                    
    39   integer, 
intent(in):: day                      
    40   integer, 
intent(in):: hour                     
    41   integer, 
intent(in):: min                      
    42   real(DP), 
intent(in):: sec                     
    43   character(*), 
intent(in), 
optional:: zone      
    45   character(TOKEN):: csec, zonew
    48   if ( 
present(zone) ) 
then    56   if ( trim(csec) == 
'-0.' ) csec = 
'0.'    57   do while ( index(
'123456789.', csec(len_trim(csec):len_trim(csec)) ) == 0 )
    58     if ( len_trim(csec) < 2 ) 
exit    59     csec = csec(1:len_trim(csec)-1)
    61   if (int(sec) > -1 .and. int(sec) < 10)  csec = 
'0' // csec
    62   csec_len = len(trim(adjustl(csec)))
    63   if (csec(csec_len:csec_len) == 
'.') csec = csec(1:csec_len-1)
    65   result = 
cprintf(
'%04d-%02d-%02dT%02d:%02d:%c%c', &
    66     & i=(/year, month, day, hour, min/), &
    67     & c1=trim(csec), c2=trim(zonew))
 
integer, parameter, public token
単語やキーワードを保持する文字型変数の種別型パラメタ 
 
integer, parameter, public dp
倍精度実数型変数 
 
character(string) function dccaldatetochar1(year, month, day, hour, min, sec, zone)
 
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ