2014-11-04 69 views
0

我想建立一個IBM XL系統上的Fortran代碼庫與一個源文件給編譯錯誤如下:GNU Fortran語言的ctime相當於IBM XL FORTRAN

line 152.16: 1516-036 (S) Entity ctime has undefined type 

一些谷歌搜索後,我估計ctime是一個GNU Fortran函數,這就是xl編譯器不喜歡它的原因。有人可以建議在IBM xl fortran編譯器中是否有用於ctime的其他功能。

ctime函數將系統時間值轉換爲字符串。參考文獻節9.74第https://gcc.gnu.org/onlinedocs/gfortran.pdf

+1

我懶得看看gfortran文檔來找出'ctime'的功能。你爲什麼不告訴我們? – 2014-11-04 15:20:03

+0

@HighPerformanceMark謝謝,編輯我的問題。 – Ketan 2014-11-04 15:28:22

回答

1

的Fortran的124中,由於1990年標準,如果正確地記得定義名爲date_and_time一個標準子程序將返回的當前日期和時間(如果它正在運行的計算機能夠告訴一個的程序)以字符和數字形式。詳情請參閱您最喜愛的文檔集。

如果您的問題是將以某種數字格式存儲的日期和時間值轉換爲字符串,這就是內部寫入的用途。如果您不知道如何使用內部寫入將數字轉換爲字符串,那麼(a)tut和(b)要求澄清。

如果您的整個代碼庫感染了ctime,您可以編寫自己的實現並讓IBM編譯器爲您編譯它。

+0

我發現IBM編譯器有一個等效函數,並附加了下劃線:'ctime_'代替它不起作用。我對Fortran不太熟悉,我有什麼建議可以使用它?還想知道是否有任何標誌可以幫助您瞭解兼容性?感謝您的回答。 – Ketan 2014-11-04 15:45:46

+0

因此,做一個全局搜索並替換你的代碼庫,將'ctime'的每次出現改爲'ctime_'。確保你已經掌握了所有的版本控制,這樣你就可以重建gfortran版本而無需另外的全局搜索和替換。至於編譯器兼容性,沒有關於這方面的建議。 – 2014-11-04 15:51:32

1

其中一個答案中提到的等效子程序是ctime_,但請注意參數的順序是不同的。

gfortran:

call ctime(time, result) 
where time is an intent(in) integer argument 
and result is an intent(out) character argument 

XL Fortran語言:

call ctime_(str, time) 
where str is the intent(out) character argument 
and time is the intent(in) integer argument 

你可以找到ctime_在服務和實用程序一章中的XL Fortran語言編寫參考完整的文檔。 Here是鏈接到XL Fortran 15.1語言參考中的函數的鏈接: