cosgene_pack180227.tar.gz(2020/1/2現在の最新版)は、gfortran 7.xを使う場合に、インストール時にエラーとなる。
cosgene_packは、myPrestoのMDプログラム関連のパッケージ。次のサイトからダウンロード可能。
https://www.mypresto5.jp/
gcc/gfortran 7.xの環境の例:
HGCスパコン(shirokane5, 7.2/7.3)
Ubuntu 18.04 LTS (Windows 10のWSL, 7.4))
エラーの内容:
gfortran -o cosgene Boundary_Class.o Condition_Class.o Constant_Class.o Size_Class.o Analyze_Class.o Dynamics_Class.o Enum_Type.o Input_Class.o Interact_Class.o JobControl_Class.o Minimize_Class.o Monitor_Class.o MultiCluster_Class.o Object_Class.o Option_Class.o String.o Data_Stock.o ECC_Function.o File_Class.o Math_Library.o Output_Class.o Restrain_Class.o System_Class.o EffectiveTemp_Method.o ForceBias_Method.o GeneralST_Method.o Instance.o NuclearEffect.o ResidueDipolar.o SimulatedTemp_Method.o Tsallis_Function.o Boundary_Method.o Communicate_Dummy.o Debug.o ErfcSpline_Method.o Hybrid_Method.o Error.o Ewald_Method.o FlowForce.o Object_Method.o Remove_Velocity.o Repulsion.o Saturation.o Umbrella_Method.o AccessibleSurface_Method.o Angle.o Bond.o Boundary_Function.o Cap.o Check_Class.o Dihedral.o Distance.o ExtCap.o FMM_Method.o GeneralizedBorn_Method.o Output_Data.o Position.o Range.o Rattle.o Shake.o Temperature.o Torsion.o Torsional.o Wolf_Method.o Charmm_Method.o Monitor.o Input_Option.o InteractTable.o Output_MD.o Restrain_Control.o Thermostat.o Fast_NonBonded.o Input_Data.o NonBonded.o Periodic_NonBonded.o Smooth_Method.o Input_Common.o Rigid_Method.o Barostat.o Interact_Control.o Analyze_Method.o Integrate_Method.o Minimize_Method.o Respa.o Tsallis_Method.o Verlet.o Control_Analyze.o Control_Dynamics.o Control_Min.o Child_Process.o Control_MD.o cosgene.o -O3
cosgene.o: 関数 `md_mainprocess_' 内:
cosgene.f90:(.text+0x20):再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (シンボル `__jobcontrol_instance_MOD_jobcontrol' に対して、 .bss セクション、 Instance.o 内)
cosgene.f90:(.text+0x26):再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (シンボル `__jobcontrol_instance_MOD_jobcontrol' に対して、 .bss セクション、 Instance.o 内)
cosgene.f90:(.text+0x30):再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (シンボル `__jobcontrol_instance_MOD_jobcontrol' に対して、 .bss セクション、 Instance.o 内)
cosgene.f90:(.text+0x33e):再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (シンボル `__dynamics_instance_MOD_dynamics' に対して、 .bss セクション、 Instance.o 内)
cosgene.f90:(.text+0x345):再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (シンボル `__dynamics_instance_MOD_dynamics' に対して、 .bss セクション、 Instance.o 内)
cosgene.f90:(.text+0x357):再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (シンボル `__dynamics_instance_MOD_dynamics' に対して、 .bss セクション、 Instance.o 内)
cosgene.f90:(.text+0x362):再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (シンボル `__dynamics_instance_MOD_dynamics' に対して、 .bss セクション、 Instance.o 内)
cosgene.f90:(.text+0x36d):再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (シンボル `__dynamics_instance_MOD_dynamics' に対して、 .bss セクション、 Instance.o 内)
cosgene.f90:(.text+0x378):再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (シンボル `__dynamics_instance_MOD_dynamics' に対して、 .bss セクション、 Instance.o 内)
cosgene.f90:(.text+0x383):再配置がオーバーフローしないように切り詰められました: R_X86_64_PC32 (シンボル `__dynamics_instance_MOD_dynamics' に対して、 .bss セクション、 Instance.o 内)
cosgene.f90:(.text+0x38e): 追加の再配置オーバーフローは出力から除かれます
collect2: エラー: ld はステータス 1 で終了しました
cosgeneのコンパイル時(より正確にはリンク時)にエラーが発生する。
対策方法:
cosgene_pack180227/src/cosgene161210/src/Makefileを編集して、コンパイル時のオプションに、-mcmodel=mediumを追加する。
編集箇所:
(修正前) OPT = -O3
(修正後) OPT = -O3 -mcmodel=medium
修正後に、cosgene_pack180227/の下で、次のコマンドを実行する。
bin/install.sh