Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Fortran > [General] исправить программу на fortran 77


Автор: AnyaPotehina 25.12.2010, 00:39
5.6:
      SUBROUTINE para_range(1, n, nprocs, myrank, ista, iend)
     1
Error: Unclassifiable statement at (1)

что это за ошибка, подскажите, пожалуйста

Код

PROGRAM main
      INCLUDE 'mpif.h'
      PARAMETER (n = 1000)
      DIMENSION a(n)
      SUBROUTINE para_range(1, n, nprocs, myrank, ista, iend)
      iwork = (n - 1)/nprocs + 1
      ista = MIN(myrank*iwork + 1, n + 1)
      iend = MIN(ista + iwork - 1, n)
      CALL MPI_INIT(ierr)
      CALL MPI_COMM_SIZE(MPI_COMM_WORLD, nprocs, ierr)
      CALL para_range(1, n, nprocs, myrank, ista, iend)
      DO i = ista, iend
      a(i) = i
      ENDDO
      sum = 0.0
      DO i = ista, iend
      sum = sum + a(i)
      ENDDO
      CALL MPI_REDUCE(sum,ssum,1,MPI_REAL,
     & MPI_SUM, 0, MPI_COMM_WORLD, ierr)
      sum = ssum
      IF (myrank == 0) PRINT *,'sum=',sum
      CALL MPI_FINALIZE(ierr)
      END



программа считает сумму элементов массива a( )
она распараллелена, повторяющиеся операции распределены на блоки и каждый процесс вычисляет свою частичную сумму множества в вычисленном диапазоне с помощью подпрограммы para_range. Частичные суммы вконце суммируются MPI_REDUCE.

Автор: Фантом 25.12.2010, 01:05
Строка, на которую ругается компилятор, должна начинать описание подпрограммы.  Какой смысл она имеет здесь - неведомо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)