module AirClass use fem implicit none type :: Air_ type(FEMDomain_) :: femdomain real(real64) :: temp = 303.0d0 ! K real(real64) :: CO2 = 380.0d0 ! ppm real(real64) :: O2 = 202000.0d0 ! ppm contains procedure, public :: init => initAir end type contains subroutine initAir(obj, temp, CO2, O2) class(Air_), intent(inout) :: obj real(real64), optional, intent(in) :: temp, CO2, O2 obj%temp = input(default=304.0d0, option=temp) obj%CO2 = input(default=380.0d0, option=CO2) obj%O2 = input(default=202000.0d0, option=O2) end subroutine end module