• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Fortran90/95の出力方法について)

Fortran90/95の出力方法について

このQ&Aのポイント
  • Fortran90/95の出力方法について説明します。具体的には、変数の値をwrite文で出力した後に改行しない方法について教えてください。
  • プログラムの改良方法についてお伝えします。諸事情により配列を使用しない場合にも、改行せずに変数の値を表示させる方法をご紹介します。
  • Fortran90/95を使ったプログラム実行時に、変数の値を連続して表示するための改良方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • YUI_AI
  • ベストアンサー率45% (303/661)
回答No.2

先程のURLに「18.3 数値と文字の変換を行う方法」という章がありますが。 数値を文字列に変換しても出力されませんでしょうか?

gooid_tt
質問者

お礼

YUI_AIさんの御指摘の通り,数値を文字列に変換することで出力することができました. どうもありがとうございました.

その他の回答 (2)

noname#144013
noname#144013
回答No.3

こんにちは。 既に解決されているかもしれませんが、数値のまま1行出力する例 を掲載させて頂きます。 以下の2パターンの方法により、1行出力を行うサンプルです。 1)WRITE文の出力リストで、「DO型出力リスト」を使用する。 2)WRITE文の書式指定で、「改行抑止($)」を指定する。 ※当方では、Cygwinのg95で検証してみました。 ■サンプルソース 注)インデント等のため全角スペースを入れています。   ・ご使用の際は、タブor半角スペースに置換して下さい。 ========================= !== WRITE文での1行出力テスト == PROGRAM testw2   IMPLICIT none   INTEGER i, n   CHARACTER sfmt*20   !== 個数の入力 ==   WRITE(*,fmt='(A)',advance='no') 'Number(1-99)='   READ(*,*) n   IF (n<1 .OR. n>99) THEN     PRINT *,'** Numerical range is over. **'     STOP   ENDIF   !== Test-1: DO型リストで出力(書式はデフォルト) ==   PRINT *,'== Test-1 =='   WRITE(*,*) ( i, i=1,n )   !== Test-2: DO型リストで出力(書式指定:n個×4桁) ==   PRINT *,'== Test-2 =='   WRITE(sfmt,'("(",I2,"I",I2,")")') n,4   WRITE(*,sfmt) ( i, i=1,n )   !== Test-3: 改行抑止($)で出力 ==   PRINT *,'== Test-3 =='   DO i = 1, n     WRITE(*,'(I4,$)') i   END DO   PRINT * END PROGRAM testw2 ========================= <サンプルの実行結果> Number(1-99)=10 == Test-1 == 1 2 3 4 5 6 7 8 9 10 == Test-2 ==   1  2  3  4  5  6  7  8  9 10 == Test-3 ==   1  2  3  4  5  6  7  8  9 10 ■参考サイト 配列要素を一行に出力する http://rakasaka.fc2web.com/fortran/fortran.html#output_array ↑これは上記サンプルのように配列でなくても利用できます。 WRITE文の改行を抑制する http://rakasaka.fc2web.com/fortran/fortran.html#write 以上です。

  • YUI_AI
  • ベストアンサー率45% (303/661)
回答No.1

write で advance='no' と指定すれば良いみたいですよ 参考URL http://www.nag-j.co.jp/fortran/FI_18.html http://www.nag-j.co.jp/fortran/code/advance.f90

gooid_tt
質問者

補足

YUI_AIさん早速解答していただきありがとうございます。 私の説明不足だったのですが,実は質問をする前にwrite文でadvance='no'とする方法を試しました.しかし,write文でadvance='no'とする方法では文章を表示させることはできても変数を表示させることができませんでした.そこで,変数により数値を表示させつつ改行もしない方法が知りたいのです.

関連するQ&A