Ошибки при использовании библиотеки fortran PCHIP - PullRequest
0 голосов
/ 29 января 2019

Я очень плохо знаком с Фортраном и знаю, что моя проблема может быть глупой.Любая помощь приветствуется.

Я пытаюсь использовать PCHIP для выполнения сохраняющей форму интерполяции.Исходный код "pchip.f90" и программа вызова сэмплирования "pchip_prb.f90" доступны на https://people.sc.fsu.edu/~jburkardt/f_src/pchip/pchip.html.

Затем я попытался запустить программу вызова сэмплирования "pchip_prb.f90", добавив новую строку INCLUDE "pchip.f90" в начале "pchip_prb.f90".Но появляется много ошибок.Я действительно не знаю, что случилось.

Может ли кто-нибудь помочь мне с этим?Большое спасибо!

Ошибки:

mkdir -p Build && gfortran -O3 -Werror -Wno-unused -fimplicit-none -Wall -fcheck=bound,do -ffpe-trap=invalid,zero,overflow -I/usr/local/include/ -J"./Build" -c "pchip_prb.f90" -o "Build/pchip_prb.o" (in directory: /Users/yajiewang/Desktop/try_new)
pchip.f90:12969:0:
 FUNCTION RAND ( R )
Error: 'rand' declared at (1) is also the name of an intrinsic.  It can only be called via an explicit interface or if declared EXTERNAL. [-Werror=intrinsic-shadow]
pchip.f90:245:13:
      ITRUE = SIGN (ONE, DELTA)
             1
Error: Possible change of value in conversion from REAL(4) to INTEGER(4) at (1) [-Werror=conversion]
pchip.f90:1011:13:
      ITRUE = DSIGN (ONE, DELTA)
             1
Error: Possible change of value in conversion from REAL(8) to INTEGER(4) at (1) [-Werror=conversion]
pchip.f90:13102:8:
   IX1 = MOD(R,1.)*4194304. + 0.5E+00
        1
Error: Possible change of value in conversion from REAL(4) to INTEGER(4) at (1) [-Werror=conversion]
pchip.f90:1813:54:
   CALL DCHFEV (0.D0, 1.D0, 3.D0, 7.D0, 3.D0, 6.D0, 0, DUM, DUM, NEXT, IERR)
                                                      1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:1817:54:
   CALL DCHFEV (1.D0, 1.D0, 3.D0, 7.D0, 3.D0, 6.D0, 1, DUM, DUM, NEXT, IERR)
                                                      1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:1821:54:
   CALL DCHFDV (0.D0, 1.D0, 3.D0, 7.D0, 3.D0, 6.D0, 0, DUM, DUM, DUM, NEXT, IERR)
                                                      1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:1825:54:
   CALL DCHFDV (1.D0, 1.D0, 3.D0, 7.D0, 3.D0, 6.D0, 1, DUM, DUM, DUM, NEXT, IERR)
                                                      1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:1846:39:
   CALL DPCHFE (1, X, F, D, 1, SKIP, 0, DUM, DUM, IERR)
                                       1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:1851:39:
   CALL DPCHFE (N, X, F, D, 1, SKIP, 0, DUM, DUM, IERR)
                                       1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:1856:39:
   CALL DPCHFE (N, X, F, D, 1, SKIP, 0, DUM, DUM, IERR)
                                       1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:1861:39:
   CALL DPCHFD (1, X, F, D, 1, SKIP, 0, DUM, DUM, DUM, IERR)
                                       1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:1866:39:
   CALL DPCHFD (N, X, F, D, 1, SKIP, 0, DUM, DUM, DUM, IERR)
                                       1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:1871:39:
   CALL DPCHFD (N, X, F, D, 1, SKIP, 0, DUM, DUM, DUM, IERR)
                                       1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:7428:53:
   CALL CHFEV (0.E0, 1.E0, 3.E0, 7.E0, 3.E0, 6.E0, 0, DUM, DUM, NEXT, IERR)
                                                     1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:7432:53:
   CALL CHFEV (1.E0, 1.E0, 3.E0, 7.E0, 3.E0, 6.E0, 1, DUM, DUM, NEXT, IERR)
                                                     1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:7436:53:
   CALL CHFDV (0.E0, 1.E0, 3.E0, 7.E0, 3.E0, 6.E0, 0, DUM, DUM, DUM, NEXT, IERR)
                                                     1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:7440:53:
   CALL CHFDV (1.E0, 1.E0, 3.E0, 7.E0, 3.E0, 6.E0, 1, DUM, DUM, DUM, NEXT, IERR)
                                                     1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:7461:42:
       CALL PCHFE (1, X, F, D, 1, SKIP, 0, DUM, DUM, IERR)
                                          1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:7466:42:
       CALL PCHFE (N, X, F, D, 1, SKIP, 0, DUM, DUM, IERR)
                                          1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:7471:42:
       CALL PCHFE (N, X, F, D, 1, SKIP, 0, DUM, DUM, IERR)
                                          1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:7476:42:
       CALL PCHFD (1, X, F, D, 1, SKIP, 0, DUM, DUM, DUM, IERR)
                                          1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:7481:42:
       CALL PCHFD (N, X, F, D, 1, SKIP, 0, DUM, DUM, DUM, IERR)
                                          1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
pchip.f90:7486:42:
       CALL PCHFD (N, X, F, D, 1, SKIP, 0, DUM, DUM, DUM, IERR)
                                          1
Error: Rank mismatch in argument 'xe' at (1) (rank-1 and scalar) [-Werror=argument-mismatch]
f951: all warnings being treated as errors
Compilation failed.

1 Ответ

0 голосов
/ 29 января 2019

При -Werror предупреждения становятся ошибками.Без него я могу скомпилировать код.

У вас есть два варианта:

  1. Компилировать без -Werror и позволить завершению компиляции.В коде есть несколько тестов, которые помогут вам быть уверенными в себе.

  2. Исправьте код во всех местах, где есть ошибки.Здесь это означает проверку нескольких преобразований (из вещественного в целое) и исправление аргументов, форма которых неправильна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...