Fortran-跳转其他子例程

时间:2018-07-06 12:01:53

标签: fortran subroutine

我试图跳过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

0 个答案:

没有答案