我正在尝试制作关于悬臂的程序。
program statik
implicit none
integer :: i;
real :: x, stuetzlaenge, belastung, einzellastlaenge, einzellast, auflagerkraft, querkraft, moment;
logical :: debugging
debugging = .false.
if (debugging) then
stuetzlaenge = 1.0
belastung = 1.0
else
print *, 'Statik: Kragarm unter Gleichlast mit Einzellast an beliebiger Stelle'
print *, 'Bitte geben Sie die Geometrie und die Belastungen ein: '
write(*,100) '- Stuetzlaenge l [m] = '
read(*,*) stuetzlaenge
write(*,100) '- Gleichlast q [kN/m] = '
read(*,*) belastung
write(*,100) '- Lage der Einzellast a [m] = '
read(*,*) einzellastlaenge
write(*,100) '- Einzellast F [kN] = '
read(*,*) einzellast
end if
print *, 'Eingaben:'
print *, '- Stuetzlaenge l [m] = ', stuetzlaenge
print *, '- Gleichlast q [kN/m] = ', belastung
print *, '- Lage der Einzellast a [m] = ', einzellastlaenge
print *, '- Einzellast F [kN] = ', einzellast
print *, 'Ergebnisse:'
auflagerkraft = belastung*stuetzlaenge + einzellast;
print *, '- Auflagerkraft: A = ', auflagerkraft , ' kN'
print *, '- Querkraefte:'
do i = 0, 10
x = stuetzlaenge*i/10 [m];
querkraft = auflagerkraft - belastung*x - if(einzellastlaenge == x) then write(*,*) "einzellast" else if(einzellastlaenge > x)then write(*,*)"0";
print *, ' Q(x=',x,') = ', querkraft, 'kN'
end do
print *, '- Momente:'
do i = 0, 10
x = stuetzlaenge*i/10;
moment = belastung*stuetzlaenge*stuetzlaenge/2 - belastung*x*x/2 - if(einzellastlaenge == x) then write(*,*) "einzellast*einzellastlaenge";
print *, ' M(x=',x,') = ', moment, 'kNm'
end do
100 format(1X,A)
end program statik
错误:
1错误:在(1)处截断的行 [-Werror =线路截短]
main.f95:49:97:moment = belastung*stuetzlaenge*stuetzlaenge/2 - belastung*x*x/2 - if(einzellastlaenge == x) then write(*,*) "einzellast*einzellastlaenge"; 1
错误: 名称中的字符无效(1)
main.f95:50:1:
答案 0 :(得分:1)
除了这些语法在语法上不正确之外,它们也太长了。使用行继续(&
)分解它们,或者扩展每行所考虑的列数。
假设您正在使用gfortran
(来自错误消息),则使用-ffree-line-length-0
or -ffree-line-length-none
完成此操作。