SMS Shield + Flame Sensor: Can`t work together

Hi, I`m performing a home automation project, the program should work like this:

(1) When I send a SMS like #a1b1c0d0, leds a and b should be turned on and c and d should be turned off.

(2) When the Flame Sensor detects a value higher than 4.9, the arduino should call me on the cellphone.

I can make (1) and (2) work running separated, but I couldn`t merge the two codes and make them work together, must be a noobs mistake cause I’m new to this. Please help guys, will be much appreciated!

Here is the codes and links to datasheets:

Complete Code (that doesn’t work):

 #include <SoftwareSerial.h>
 char inchar; //Will hold the incoming character from the Serial Port.
 SoftwareSerial cell(2,3); //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin.

 int led1 = 9;
 int led2 = 10;
 int led3 = 11;
 int led4 = 12;

 void setup()
 {
 // prepare the digital output pins
 pinMode(led1, OUTPUT);
 pinMode(led2, OUTPUT);
 pinMode(led3, OUTPUT);
 pinMode(led4, OUTPUT);
 digitalWrite(led1, LOW);
 digitalWrite(led2, LOW);
 digitalWrite(led3, LOW);
 digitalWrite(led4, LOW);
 //Initialize GSM module serial port for communication.
 cell.begin(9600);
 delay(30000); // give time for GSM module to register on network etc.
 cell.println("AT+CMGF=1"); // set SMS mode to text
 delay(200);
 cell.println("AT+CNMI=3,3,0,0"); // set module to send SMS data to serial out upon receipt 
 delay(200);
 }

 void loop() 
 {
 //If a character comes in from the cellular module...
 if(cell.available() >0)
 {
 inchar=cell.read(); 
 if (inchar=='#')
 {
 delay(10);
 inchar=cell.read(); 
 if (inchar=='a')
 {
 delay(10);
 inchar=cell.read();
 if (inchar=='0')
 {
 digitalWrite(led1, LOW);
 } 
 else if (inchar=='1')
 {
 digitalWrite(led1, HIGH);
 }
 delay(10);
 inchar=cell.read(); 
 if (inchar=='b')
 {
 inchar=cell.read();
 if (inchar=='0')
 {
 digitalWrite(led2, LOW);
 } 
 else if (inchar=='1')
 {
 digitalWrite(led2, HIGH);
 }
 delay(10);
 inchar=cell.read(); 
 if (inchar=='c')
 {
 inchar=cell.read();
 if (inchar=='0')
 {
 digitalWrite(led3, LOW);
 } 
 else if (inchar=='1')
 {
 digitalWrite(led3, HIGH);
 }
 delay(10);
 inchar=cell.read(); 
 if (inchar=='d')
 {
 delay(10);
 inchar=cell.read();
 if (inchar=='0')
 {
 digitalWrite(led4, LOW);
 } 
 else if (inchar=='1')
 {
 digitalWrite(led4, HIGH);
 }
 delay(10);
 }
 }
 cell.println("AT+CMGD=1,4"); // delete all SMS
 }
 }
 }
 }
  int sensorValue = analogRead(A0);     // Here starts the Flame Sensor part*******************************************************
  
  float voltage = sensorValue*(5.0/1023.0);
  
  Serial.println(voltage);
  
  delay(100);
  
  if (voltage > 4.9)
  {
    cell.println("ATD981752290");
  }
    
 }

Flame Sensor Code:

#include <SoftwareSerial.h>
SoftwareSerial cell(2,3);
void setup()
{
   cell.begin(9600);
 delay(25000);
  Serial.begin(9600);
  
}
void loop()
{
  int sensorValue = analogRead(A0);
  
  float voltage = sensorValue*(5.0/1023.0);
  
  Serial.println(voltage);
  
  delay(100);
  
  if (voltage > 4.9)
  {
    cell.println("ATD981752290");
  }
    
}

SMS receive + led activation Code:

 #include <SoftwareSerial.h>
 char inchar; //Will hold the incoming character from the Serial Port.
 SoftwareSerial cell(2,3); //Create a 'fake' serial port. Pin 2 is the Rx pin, pin 3 is the Tx pin.

 int led1 = 9;
 int led2 = 10;
 int led3 = 11;
 int led4 = 12;

 void setup()
 {
 // prepare the digital output pins
 pinMode(led1, OUTPUT);
 pinMode(led2, OUTPUT);
 pinMode(led3, OUTPUT);
 pinMode(led4, OUTPUT);
 digitalWrite(led1, LOW);
 digitalWrite(led2, LOW);
 digitalWrite(led3, LOW);
 digitalWrite(led4, LOW);
 //Initialize GSM module serial port for communication.
 cell.begin(9600);
 delay(30000); // give time for GSM module to register on network etc.
 cell.println("AT+CMGF=1"); // set SMS mode to text
 delay(200);
 cell.println("AT+CNMI=3,3,0,0"); // set module to send SMS data to serial out upon receipt 
 delay(200);
 }

 void loop() 
 {
 //If a character comes in from the cellular module...
 if(cell.available() >0)
 {
 inchar=cell.read(); 
 if (inchar=='#')
 {
 delay(10);
 inchar=cell.read(); 
 if (inchar=='a')
 {
 delay(10);
 inchar=cell.read();
 if (inchar=='0')
 {
 digitalWrite(led1, LOW);
 } 
 else if (inchar=='1')
 {
 digitalWrite(led1, HIGH);
 }
 delay(10);
 inchar=cell.read(); 
 if (inchar=='b')
 {
 inchar=cell.read();
 if (inchar=='0')
 {
 digitalWrite(led2, LOW);
 } 
 else if (inchar=='1')
 {
 digitalWrite(led2, HIGH);
 }
 delay(10);
 inchar=cell.read(); 
 if (inchar=='c')
 {
 inchar=cell.read();
 if (inchar=='0')
 {
 digitalWrite(led3, LOW);
 } 
 else if (inchar=='1')
 {
 digitalWrite(led3, HIGH);
 }
 delay(10);
 inchar=cell.read(); 
 if (inchar=='d')
 {
 delay(10);
 inchar=cell.read();
 if (inchar=='0')
 {
 digitalWrite(led4, LOW);
 } 
 else if (inchar=='1')
 {
 digitalWrite(led4, HIGH);
 }
 delay(10);
 }
 }
 cell.println("AT+CMGD=1,4"); // delete all SMS
 }
 }
 }
 }
 }

Shield link: https://www.sparkfun.com/products/9607
Flame Sensor: http://www.cytron.com.my/viewProduct.php?pcode=SN-FLAME-MOD
SMS Code acquired on: http://tronixstuff.wordpress.com/2011/01/31/tutorial-arduino-and-gsm-cellular-–-part-two/

You have two programs that work, so you posted them. You have one that doesn't, so you didn't post it. But, it is that code that we are to use our psychic powers on, and help you fix.

Good luck with that.