06/02/14 22:20:04
>>169
program hoge
implicit none
real, dimension(3) :: x, y, z
real, dimension(5) :: u, v, w
x = (/1, 2, 3/); y = (/2, 3, 4/)
u = (/4, 5, 6, 7, 8/); v = (/10, 20, 30, 40, 50/)
z = adda(x, y)
w = adda(u, v)
print *, z
print *, w
stop
contains
function adda(a, b)
real, intent(in), dimension(:) :: a, b
real, dimension(size(a)) :: adda
integer :: na, nb
na = size(a); nb = size(b)
if (na > nb) then
adda(1:nb) = a(1:nb) + b(1:nb); adda(nb+1:na) = 0.0
else if (na < nb) then
adda = a(1:na) + b(1:na)
else
adda = a + b
end if
end function adda
end program hoge