<SUBMODULE Example Program>
Module mymod
Interface
Module Integer Function next_number() Result(res)
End Function
Module Subroutine reset()
End Subroutine
End Interface
End Module
Submodule (mymod) variables
Integer :: next = 1
End Submodule
Submodule (mymod:variables) functions
Contains
Module Procedure next_number
res = next
next = next + 1
End Procedure
End Submodule
Submodule (mymod:variables) subroutines
Contains
Module Subroutine reset()
Print *,'Resetting'
next = 1
End Subroutine
End Submodule
Program demo
Use mymod
Print *,'Hello',next_number()
Print *,'Hello again',next_number()
Call reset
Print *,'Hello last',next_number()
End Program
■ Execution Results
Hello 1
Hello again 2
Resetting
Hello last 1