Fortran 4.7.2/4.8.1 error: There is no specific subroutine for the generic 'vode' at (1)

瘦欲@ 提交于 2020-01-04 07:53:07

问题


I try to compile the fortran program which my advisor gave me.

It doesn't want to compile when I'm doing this with gfortran 4.7.2 on Mac OS X 10.8.4 and with gfortran 4.8.1 on Arch Linux x64.

I've built the minimal working example which replays the error. Unfortunately, it's quite big anyway, so I've put it on the github: https://github.com/kabanovdmitry/vode-test

I can compile this code under Ubuntu 12.04 with gfortran 4.6.3.

I've checked press releases for GCC 4.7 and found nothing that could give me a clue.

Could you please shed some light why gfortran doesn't want to compile this code?

Sorry, initially forgot to put the errors here:

main.f90:8.75:

    call vode(istate, lambda_fcn, dummy_jac, lambda, x_tmp, x_end, tol, pm)
                                                                       1
Error: There is no specific subroutine for the generic 'vode' at (1)
make: *** [all] Error 1

回答1:


Your problem is covered by my answer and its comments in the question referenced by george. The type, kind and rank of arguments match exactly. To add something new, I suggest you to try to call the specific procedure directly. The type checker will then complaint for bad actual arguments and you will see more details.

In your case

generic2.f90:81.24:

call d_vode(istate, lambda_fcn, dummy_jac, lambda, x_tmp, x_end, tol, pm)
                    1
Error: Interface mismatch in dummy procedure 'f' at (1): Shape mismatch in dimension 1 of argument 'y'

Which is rather self-explaining. You dummy procedures are not compatible with your interfaces. You are mixing assumed-size and constant-size and explicit size arrays. You must follow the interface exactly.



来源:https://stackoverflow.com/questions/17304246/fortran-4-7-2-4-8-1-error-there-is-no-specific-subroutine-for-the-generic-vode

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!