質問

Fortranのいくつかの.hファイルとともに、Fortranファイルをコンパイルしようとしています。 .hファイルには、変数の一般的なブロックの定義が含まれています。 Fortranでそれらをコンパイルすると、次のエラーが表示されます。

integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma,
                                      1
Error: Invalid character in name at (1)

このエラーが発生するコードは、

さて、私の質問は、この「1」のポイントがあるのですか?

このエラーがポイントするコードの行は、

integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma, 
     &     kw,kz,kgluon,kh1,kh2,kh3,khc,ksnue,kse1,kse2,ksnumu,ksmu1,
     &     ksmu2,ksnutau,kstau1,kstau2,ksu1,ksu2,ksd1,ksd2,ksc1,ksc2,
     &     kss1,kss2,kst1,kst2,ksb1,ksb2,kn1,kn2,kn3,kn4,kcha1,kcha2,
     &     kgluin,kgold0,kgoldc

また、継続の使用方法に何か問題がありますか。 gfortranを使用してこのファイルをコンパイルしています。

役に立ちましたか?

解決

Fortran 77スタイルのラインの継続を使用しており、Fortran 90スタイルの無料フォーマットコードをコンパイルしようとしているようです。 GFORTRANを使用してコンパイルする必要があります -ffixed-form オプション、またはFortran 90スタイルのラインの継続を使用してコードをフォーマットします。

integer knue,ke,knumu,kmu,knutau,ktau,ku,kd,kc,ks,kt,kb,kgamma, &
          kw,kz,kgluon,kh1,kh2,kh3,khc,ksnue,kse1,kse2,ksnumu,ksmu1, &
          ksmu2,ksnutau,kstau1,kstau2,ksu1,ksu2,ksd1,ksd2,ksc1,ksc2, &
          kss1,kss2,kst1,kst2,ksb1,ksb2,kn1,kn2,kn3,kn4,kcha1,kcha2, &
          kgluin,kgold0,kgoldc 

他のヒント

変更する際にこの問題が発生しました scipy そしてそれをコンパイルしようとしています。スターとともに、それを機能させるために次の識別が必要でした * 列5では、Fortran 77と90の両方のスタイルで動作します。

      double precision a,abseps,abserr,alist,area,area1,area12,area2,
     * a1,a2,b,blist,b1,b2,correc,dabs,defabs,defab1,defab2,d1mach,
     * dmax1,dres,elist,epmach,epsabs,epsrel,erlarg,erlast,errbnd,
     * errmax,error1,error2,erro12,errsum,ertest,f,oflow,resabs,
     * reseps,result,res3la,rlist,rlist2,small,uflow,areav

最初の質問に、はい、「1」は通常、エラーが発生するコードのポイントを示します。そうでなければ、コードは大丈夫に見えます。

実際、Fortran 77の継続列は6番です。

http://web.stanford.edu/class/me200c/tutorial_77/03_basics.html

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top