You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
561 B
Fortran
28 lines
561 B
Fortran
submodule (parent) container
|
|
implicit none
|
|
|
|
contains
|
|
|
|
module procedure init
|
|
p%mother = mother
|
|
p%father = father
|
|
end procedure init
|
|
|
|
module subroutine harmonize(p)
|
|
type(parent_type), intent(inout) :: p
|
|
real :: avg
|
|
|
|
avg = 0.5 * (p%father + p%mother)
|
|
p%father = avg
|
|
p%mother = avg
|
|
end subroutine harmonize
|
|
|
|
module function parent_weight(p) result(w)
|
|
type(parent_type), intent(in) :: p
|
|
real :: w
|
|
|
|
w = p%mother**2 + p%father**2
|
|
end function parent_weight
|
|
|
|
end submodule container
|