ПРОБЛЕМЫ: Длинный список директив OpenMP Fortran77Синтаксиса для списка OpenMP долго директивы Fortran77
c$omp parallel default(shared) private(i,k,i1,i2,i3,i4,i5,
$ i6,x0,y0,z0,vnx0,vny0,vnz0,qs0)
c$omp do
Task to be performed
c$omp end do
c$omp end parallel
Я пытаюсь скомпилировать выше программу с помощью ifort и она отлично работает. Я проверил с серийной версией, и я получаю тот же результат
ifort -openmp -parallel -o ./solve
Но когда я пытаюсь скомпилировать с помощью gfortran он не работает.
gfortran -fopenmp
Я получаю следующую ошибку
quinckedrop.f:2341.57:
*$omp parallel default(shared) private(i,k,i1,i2,i3,i4,i5
1
Error: Syntax error in OpenMP variable list at (1)
quinckedrop.f:2342.6:
$ ,i6,x0,y0,z0,vnx0,vny0,vnz0,qs0)
1
Error: Bad continuation line at (1)
quinckedrop.f:2342.15:
$ ,i6,x0,y0,z0,vnx0,vny0,vnz0,qs0)
1
Error: Invalid character in name at (1)
quinckedrop.f:2381.72:
*$omp end parallel
1
Error: Unexpected !$OMP END PARALLEL statement at (1)
quinckedrop.f:2768.6:
$ private(i,k,i1,i2,i3,i4,i5,i6,x0,y0,z0,vnx0,vny0,vnz0)
1
Error: Bad continuation line at (1)
quinckedrop.f:2768.21:
$ private(i,k,i1,i2,i3,i4,i5,i6,x0,y0,z0,vnx0,vny0,vnz0)
1
Error: PRIVATE statement at (1) is only allowed in the specification part of a module
quinckedrop.f:4302.6:
$ private(i,k,i1,i2,i3,i4,i5,i6,x0,y0,z0)
1
Error: Bad continuation line at (1)
quinckedrop.f:4302.21:
$ private(i,k,i1,i2,i3,i4,i5,i6,x0,y0,z0)
1
Error: PRIVATE statement at (1) is only allowed in the specification part of a module
quinckedrop.f:5738.6:
$ private(i,k,i1,i2,i3,i4,i5,i6,x0,y0,z0
1
Error: Bad continuation line at (1)
quinckedrop.f:5738.21:
$ private(i,k,i1,i2,i3,i4,i5,i6,x0,y0,z0
1
Error: PRIVATE statement at (1) is only allowed in the specification part of a module
This proposed solution не работает для меня (может быть, потому что я использую Fortran77)
Вам нужно использовать синтаксис продолжения правой линии. Я дам точное решение позже, если больше никто не будет писать. – Jeff