我正在尝试安装 pyOpt,但遇到了 Mingw64 gfortran 编译器抛出错误的错误。看起来变量“g”保存在包含文件的公共块中,而“dum”则在本地声明。可以采取什么措施来克服这些错误?
Warning: 'rhoc' may be used uninitialized in this function [-Wmaybe-uninitialized]
pyOpt\pyALGENCAN\source\evalal.f:408:35:
408 | call sevalgjacp(n,xp,gp,m,dpdcp,nalp,'T',gotj,inform)
| 1
......
802 | call sevalgjacp(n,x,dum,m,ap,ptmp,'j',gotj,inform)
| 2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
pyOpt\pyALGENCAN\source\evalal.f:112:34:
112 | call sevalgjacp(n,x,g,m,p,nl,'T',gotj,inform)
| 1
......
802 | call sevalgjacp(n,x,dum,m,ap,ptmp,'j',gotj,inform)
| 2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (scalar and rank-1)
gfortran.exe:f77: pyOpt\pyALGENCAN\source\fparam.f
pyOpt\pyALGENCAN\source\extrap.f:183:10:
您可能只需将以下标志添加到编译器文件或 makefile 中即可设置所有内容。
-休耕参数不匹配
我的文件看起来像这样..我的线路称为 COMOTT1
开始文件
###COMPILE=f77
###COMPILE=pgf90
COMPILE=gfortran
COMLIB1=
#COMOTT1=-dalign -O3 -r8
###COMOTT1=-dalign -fast -r8
#COMOTT1=-Ofast -mips4 -IPA -r8
# COMOTT1= -fast -O3 -r8
COMOTT1= -Ofast -fdefault-real-8 -fallow-argument-mismatch
### COMOTT1= -fast
# COMCONV= -byteswapio
COMCONV= -fconvert=swap
FILES= \
cpl_bcinterp.o \
cpl_land.o \
cpl_main_interface.o \
cpl_sea.o \
cpl_sea_model.o \
dyn_geop.o \
dyn_grtend.o \
dyn_implic.o \
dyn_sptend.o \
dyn_step.o \
dyn_stloop.o \
文件结束
希望这对你有用