Как суммировать результаты по аргументу в виде массива - PullRequest
0 голосов
/ 27 мая 2018

У меня есть код цикла цикла Фортран 95, который возвращает ответы в виде массива, пожалуйста, как мне найти СУММУ ответов (fv), не выписывая их, потому что они итеративны и могут быть изменены.спасибо

  !.......vapor fraction..............
  do i=1,6
    FV=Z(I)*(K(i)-1)/(VOLD*(K(i)-1)+1)
    write(*,99001)FV
  END DO

Я видел подобный код, где кто-то сделал:

  Real :: Zi(99),Ki(99),NV,FNV,FPNV
  FNV = 0.
  FPNV = 0.  
  Do i=1,NCOMP
    FNV= FNV + Zi(i)*(Ki(i)-1)/(NV*(Ki(i)-1)+1)
    FPNV = FPNV + (1)*Zi(i)*(Ki(i)-1)**2/((NV*(Ki(i)-1)+1)**2)
  end do
  NV1= NV - (FNV/(-1)*FPNV)

Следовательно, значения FNV и FPNV суммируются в do .. end do петля.

1 Ответ

0 голосов
/ 30 мая 2018

Предполагая, что FV является плавающим числом, вы можете суммировать его следующим образом:

!.......vapor fraction..............
FVSUM=0.     ! Initialization of sum
do i=1,6
  FV=Z(I)*(K(i)-1)/(VOLD*(K(i)-1)+1)
  write(*,99001)FV
  FVSUM = FVSUM + FV
end do
write(*,*) 'Sum of FV = ', FVSUM

После цикла сумма выводится на стандартный вывод в свободном формате.
Пожалуйста, добавьтеобъявление FVSUM:

real :: FVSUM

и скажите, ответит ли это на ваш вопрос.

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