Ничего не отображается после ввода данных - PullRequest
0 голосов
/ 08 ноября 2019

Ничего не отображается после ввода данных

program g
implicit none
    real::q,n,s,z,q2,y,free_board,r,b,e,A,h,t
    write(*,100)"pls insert discharge Q ="
    read(*,*)q
    write(*,100)"please insert Manning coefficient n ="
    read(*,*)n
    write(*,*)"please insert slope of the hydraulic channel ="
    read(*,*)s
    write(*,*)"please inset Z ="
    read(*,*)z
    write(*,*)"how much of b/y do you want?"
    write(*,*)"if it not important right 2.5"
    read(*,*)e
    if(e<2.or.e>5)then
        stop
    end if
    y=0

    do
        b=y*e
        A=b+2*y*((1+Z**2)**(0.5))
        R=((b+z*y)*y)/(b+(2*y*(1+z**2)**(0.5)))
        h=(1/n)*(r**(2/3))*A*(s)**0.5
       if( abs(h-q)<0.01) then
        exit
       end if




       y=0.001+y
    end do
    free_board=0.2*y
    h=free_board+y
    t=b+2*y*z


    write(*,100)"free board="
    write(*,*) free_board
    write(*,100)"y="
    write(*,*)y
    write(*,100)"b="
    write(*,*)b
    write(*,100)"T="
    write(*,100)t














    100 format(A)
end program g

это не работает и ничего не показывает после ввода данных

1 Ответ

0 голосов
/ 08 ноября 2019

Наверняка строка write(*,100)t выдаст неверный вывод, так как "t" - это реальная, а не строка. Пожалуйста, измените его на write(*,*).

При всех входах, равных 1,0, и, поставив e = 2,5, я вижу следующие выходные данные (на экране):

  • free board = 3.7200041E-02
  • y = 0.1860002
  • b = 0.4650005
  • T = 0.8370009

Если вы не видите результатов, возможно, вы выбираетенеправильные значения "е" (меньше 2 или больше 5).

...