現在、Fortranの行継続に関する問題を解明しようとしています。私はその言語を初めて使用しています。私は、コンパイルのすべてがifort
を使って行われる、ソフトウェアパッケージABAQUSと共に使用するためにこれを書いています。FortranでのWRITE文と行継続の問題
FILENAME = TRIM(KMC_DATADIR) // '/elementInfo.txt'
OPEN(1001, FILE=FILENAME, STATUS="REPLACE", ACTION="WRITE")
FS = '(I5,I5,I5,F12.10)'
DO K1=1,KMC_NUMELEM
WRITE(1001,FS) KMC_ELEMENTS(K1)%IDNUM, KMC_ELEMENTS(K1)%MATID,
& KMC_ELEMENTS(K1)%TRANSFORMED, KMC_ELEMENTS(K1)%ORIENT%RMAT(1,1)
END DO
CLOSE(1001)
FILENAME = TRIM(KMC_DATADIR) // '/elementInfo.txt'
OPEN(1001, FILE=FILENAME, STATUS="REPLACE", ACTION="WRITE")
FS = '(I5,I5,I5,F12.10)'
DO K1=1,KMC_NUMELEM
WRITE(1001,FS) KMC_ELEMENTS(K1)%IDNUM, KMC_ELEMENTS(K1)%MATID, &
KMC_ELEMENTS(K1)%TRANSFORMED, KMC_ELEMENTS(K1)%ORIENT%RMAT(1,1)
END DO
CLOSE(1001)
:私は
WRITE
文の途中で行継続については、以下の構成をすべて試してみましたが、コンパイルは、Fortranの90と互換性があるように設定されていると信じて
FILENAME = TRIM(KMC_DATADIR) // '/elementInfo.txt'
OPEN(1001, FILE=FILENAME, STATUS="REPLACE", ACTION="WRITE")
FS = '(I5,I5,I5,F12.10)'
DO K1=1,KMC_NUMELEM
WRITE(1001,FS) KMC_ELEMENTS(K1)%IDNUM, KMC_ELEMENTS(K1)%MATID, &
& KMC_ELEMENTS(K1)%TRANSFORMED, KMC_ELEMENTS(K1)%ORIENT%RMAT(1,1)
END DO
CLOSE(1001)
コンパイルエラー取得することはこれです:
TRIPTrans.f(55):エラー#5082:構文エラー、のいずれかを期待したときに '&' が見つかり:(...
WRITE(1001,FS) KMC_ELEMENTS(K1)%IDNUM,KMC_ELEMENTS(K1)%MATID, &
-------- -------------------------------------------------- ------------------------------------------^
私は許可されています書き込み文を複数の行に分割するには?
これは固定フォームのソースとしてコンパイルされていますか?そうであれば、最初のものはどのように失敗したでしょうか? – francescalus
* "コンパイルはFortran 90と互換性があると考えられます。" *それはどういう意味ですか?どのように設定?どのようにコンパイルしますか? –
コンパイルはifortによって行われ、コンパイル環境はABAQUSソフトウェアによって制御されます。私はabaqus環境ファイルにコンパイルフラグを設定しました。コンパイルフォートラン=(fortCmd + "-g -c -O0 -fPIC -r8 -save -mP2OPT_hpo_vec_divbyzero = F" + "-extend_source -w90 -w95 -WB -I%I -shared- intel -mcmodel medium ") –