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
