我试图跳过Fortran代码中的其他子例程。我使用了 return 函数,但是在某些情况下它不起作用。有没有办法跳到其他子程序。我举了一个简单的例子来定义问题。如果条件在同一子例程中,则可以使用 goto标签,但是我需要跳过其他子例程。如果条件正确(case = .True。),我不想计算该子例程,因此我将跳过该子例程,而将开始使用新数据。例如,如果i=3 and case=true
,则该程序不应在第三循环中打印a = 8并在子例程abc中跳过do循环。
----------------------------------------------
subroutine abc()
do i=1, 5
!if case is true, start to program from here.
call vector ()
end do
end subroutine
-------------------------------------
subroutine vector()
if (case = .True.)then
*****JUMP call vector in main program *****
print *,"skip and jump "
return
a= 8
print *, a
else
b= 9
print *, b
print *, "continue the process "
end if
end subroutine
------------------------------------------------
-----output should be-------
9
9
skip and jump
9
9