chore: import upstream snapshot with attribution
This commit is contained in:
Vendored
+70
@@ -0,0 +1,70 @@
|
||||
module geometry
|
||||
use constants
|
||||
implicit none
|
||||
|
||||
real, parameter :: PI = 3.14159
|
||||
|
||||
type :: Point
|
||||
real :: x
|
||||
real :: y
|
||||
end type Point
|
||||
|
||||
contains
|
||||
|
||||
subroutine circle_area(radius, area)
|
||||
real, intent(in) :: radius
|
||||
real, intent(out) :: area
|
||||
area = PI * radius * radius
|
||||
end subroutine circle_area
|
||||
|
||||
function distance(x1, y1, x2, y2) result(d)
|
||||
real, intent(in) :: x1, y1, x2, y2
|
||||
real :: d
|
||||
d = sqrt((x2 - x1)**2 + (y2 - y1)**2)
|
||||
end function distance
|
||||
|
||||
subroutine translate(p, dx, dy)
|
||||
type(Point), intent(inout) :: p
|
||||
real, intent(in) :: dx, dy
|
||||
p%x = p%x + dx
|
||||
p%y = p%y + dy
|
||||
end subroutine translate
|
||||
|
||||
function origin() result(p)
|
||||
type(Point) :: p
|
||||
p%x = 0.0
|
||||
p%y = 0.0
|
||||
end function origin
|
||||
|
||||
subroutine print_area(radius)
|
||||
real, intent(in) :: radius
|
||||
real :: area
|
||||
call circle_area(radius, area)
|
||||
print *, "Area =", area
|
||||
end subroutine print_area
|
||||
|
||||
function double_val(x) result(y)
|
||||
real, intent(in) :: x
|
||||
real :: y
|
||||
y = x * 2.0
|
||||
end function double_val
|
||||
|
||||
subroutine report(radius)
|
||||
real, intent(in) :: radius
|
||||
real :: scaled
|
||||
scaled = double_val(radius)
|
||||
print *, scaled
|
||||
end subroutine report
|
||||
|
||||
end module geometry
|
||||
|
||||
|
||||
program main
|
||||
use geometry
|
||||
implicit none
|
||||
|
||||
real :: r, a
|
||||
r = 5.0
|
||||
call circle_area(r, a)
|
||||
print *, "Circle area:", a
|
||||
end program main
|
||||
Reference in New Issue
Block a user