Ian Bush's answer說什麼你需要知道的:使用F
編輯描述符輸出一個真正的值需要一個至少爲2的字段寬度。我將詳細介紹一些其他方面。
你提到
至於TIMEDIR
必須改變它的大小是分配
但在代碼片段中,我們看到
WRITE(TIMEDIR, '(F1.0)') CURRENTTIME
這表明了一點誤會。 [這可能是因爲沒有混亂,但我會勞動任何其他讀者來到問題的利益點。]
當輸出格式如下Fw.d
爲輸出的w
大於零的寬度字段是總是w
。這個「始終」意味着:無論相應變量的值如何,上述TIMEDIR
上述語句的作用是使單個字符非空白。
現在,正如在那個其他答案中,2是實際值輸出的最小場寬度[1]。與所有其他數字輸出格式一樣,如果該字段對於相應的值不夠寬,則該字段完全由*
s組成。 F1.0
將始終導致輸出*
。如果你想輸出0.
(或0,
)[2]你需要F2.0
。
即將回「的TIMEDIR
不同大小」,輸出格式F2.0
是(可能)足夠用於小於10的CURRENTTIME
非負值,但對於負值或值不小於10事實並非如此。很可能這是F0.d
進來的地方。只有在這種形式的F
編輯描述符中,字段的寬度取決於輸出值。不過,這可能是另一個問題的答案。
最後,你提到
我必須找出如何使「0」出的「0」。
我會指出,你正在尋找一些額外的邏輯,如mentioned elsewhere。
日和2日是不夠的,甚至是零值:print '(SP,F2.0)', 0.
的0.
和0,
的選擇取決於小數點模式:print '(DC,F2.0,DP,F2.0)', 0., 0.
確定TIMEDIR有價值嗎? – parik
是的,它具有值「*」... –