! 模块1:文件读取模块
module read_module
implicit none
contains
subroutine read_data(file_name, num1, num2, status)
character(len=*), intent(in) :: file_name
integer, intent(out) :: num1, num2
integer, intent(out) :: status
integer :: unit, ierr
open(newunit=unit, file=file_name, status='old', iostat=ierr)
if (ierr /= 0) then
status = -1
return
end if
read(unit, *, iostat=ierr) num1, num2
close(unit)
if (ierr /= 0) then
status = -1
else
status = 0
end if
end subroutine read_data
end module read_module
! 模块2:数据处理模块
module process_module
implicit none
contains
function process_data(num1, num2) result(result_value)
integer, intent(in) :: num1, num2
integer :: result_value
if (num1 > num2) then
result_value = num1 + num2
else if (num1 < num2) then
result_value = num2 - num1
else
result_value = num1 * num2
end if
end function process_data
end module process_module
! 主程序
program main_program
use read_module
use process_module
implicit none
character(len=100) :: file_name = 'data.txt'
integer :: num1, num2, status, result
call read_data(file_name, num1, num2, status)
if (status == -1) then
print *, '文件读取失败'
else
result = process_data(num1, num2)
print *, '处理结果:', result
end if
end program main_program