problem_15_module Module

A module for problem 15, part 2.


Uses

  • module~~problem_15_module~~UsesGraph module~problem_15_module problem_15_module iso_fortran_env iso_fortran_env module~problem_15_module->iso_fortran_env module~aoc_utilities aoc_utilities module~problem_15_module->module~aoc_utilities module~aoc_utilities->iso_fortran_env

Used by

  • module~~problem_15_module~~UsedByGraph module~problem_15_module problem_15_module program~problem_15 problem_15 program~problem_15->module~problem_15_module

Derived Types

type, public ::  lens

Components

Type Visibility Attributes Name Initial
character(len=:), public, allocatable :: label
integer(kind=ip), public :: focal_length = 0

type, public ::  box

Components

Type Visibility Attributes Name Initial
type(lens), public, dimension(:), allocatable :: lenses

the lenses in the box

Type-Bound Procedures

procedure, public :: add_lens
procedure, public :: remove_lens

Subroutines

public subroutine add_lens(me, l)

Arguments

Type IntentOptional Attributes Name
class(box), intent(inout) :: me
type(lens), intent(in) :: l

lense to add

public subroutine remove_lens(me, label)

remove the lens with the label (if present)

Arguments

Type IntentOptional Attributes Name
class(box), intent(inout) :: me
character(len=*), intent(in) :: label