// Function from file: volume_pump.dm
        public override int?process_atmos(  )
        {
            GasMixture air1 = null;
            dynamic    air2 = null;
            dynamic    input_starting_pressure  = null;
            dynamic    output_starting_pressure = null;
            double?    transfer_ratio           = null;
            GasMixture removed = null;


            if ((this.stat & 3) != 0)
            {
                return(null);
            }

            if (!Lang13.Bool(this.on))
            {
                return(0);
            }
            air1 = this.airs[1];
            air2 = this.airs[2];
            input_starting_pressure  = air1.return_pressure();
            output_starting_pressure = air2.return_pressure();

            if (Convert.ToDouble(input_starting_pressure) < 0.01 || Convert.ToDouble(output_starting_pressure) > 9000)
            {
                return(1);
            }
            transfer_ratio = Num13.MinInt(1, ((int)(this.transfer_rate / (air1.volume ?? 0))));
            removed        = air1.remove_ratio(transfer_ratio);
            air2.merge(removed);
            this.update_parents();
            return(1);
        }