我正在嘗試修改一箇舊的Fortran代碼,以使它能夠處理稍微不同的二進制輸入文件格式。在這樣做的過程中,我一直遇到*以一種單一的方式使用。例如,在一個循環內找到這個代碼:Fortran,函數調用中的一元*運算符的含義?
CALL EVENT1(QDRBUF(IPNTR+EVTHSZ),EVTSIZ,EVTID,
- *11000,*10000,*80000)
還有其他一些情況,但據我所見/記住它只在函數調用中。這是幹什麼的?
我正在嘗試修改一箇舊的Fortran代碼,以使它能夠處理稍微不同的二進制輸入文件格式。在這樣做的過程中,我一直遇到*以一種單一的方式使用。例如,在一個循環內找到這個代碼:Fortran,函數調用中的一元*運算符的含義?
CALL EVENT1(QDRBUF(IPNTR+EVTHSZ),EVTSIZ,EVTID,
- *11000,*10000,*80000)
還有其他一些情況,但據我所見/記住它只在函數調用中。這是幹什麼的?
我不是一個Fortran傢伙,但這個問題讓我感興趣,所以我做了一些尋找。它似乎是一個alternate return specifier。星號後面的數字是一個標籤,可用於代替正常返回,就像捕捉異常一樣。
謝謝,我的大部分代碼都是在cpp和python上,所以在我用fortran代碼工作的罕見時候,語法的某些方面偶爾會讓我停下來,因爲我甚至不知道在搜索互聯網時怎麼稱呼他們。我甚至沒有想到人們可能會將有效的標籤作爲功能參數。再次感謝。 – 2014-12-20 05:16:52
這是正確的。您可以在RETURN語句中添加一個數字(1,2等),以指示在返回時,哪些備用語句編號(不是行數)控制恢復。 – zarchasmpgmr 2014-12-20 17:36:31
[Fortran return語句]的可能重複(http://stackoverflow.com/questions/3214059/fortran-return-statement) – 2014-12-19 08:40:50
我認爲它是相同的主題,但不是重複的問題。 – 2014-12-19 08:44:37
我同意弗拉基米爾。你認爲這是一個重複的問題的答案,回答我的問題,但問題本身不重複。他們的問題是關於返回聲明,我是關於函數調用。正如弗拉基米爾所說,同一主題的不同問題。 – 2014-12-20 05:10:19