MG2639 CELL AND GPS LIBRARIES
Is it possible to use only AltSoftSerial to create 2 serial ports and communicate with both cell and GPS in order to reduce program storage and global variables space?


The question is a little vague.

AltSoftSerial only works on pins 8 &amp; 9, so I thought you were asking if you could connect both the cell and the GPS to pins 8 &amp; 9 (using jumper pads on the back of the board), and use one AltSoftSerial instance to talk to both devices.  If it were possible, this would save RAM (just one instance) and program space (you wouldn't need two link in another software serial class, like SoftwareSerial).  However, this is not possible.  Serial connections are always point-to-point.  Although two "things" can listen to one RX line, the TX line cannot be shared by two devices.

If you were asking if you can have two instances of AltSoftSerial on two separate pairs of pins (e.g., 2/3 and 8/9), the answer is again "No", because... AltSoftSerial only works on pins 8 &amp; 9.  Also, the SparkFun library only uses SoftwareSerial to talk to the cell.


  what could i do to reduce space.


Use NeoGPS instead, and use the F macro around double-quoted strings that you print:

    sms.print( F("Imposible ubicar equipo, intente mas tarde...") );


That will save several hundred bytes of RAM.

Also, you may be sending multiple SMS's per second.  It depends on what sentences the GPS emits.  As it is, your sketch will send one SMS per sentence (i.e., one for each encode).  Even if you don't use NeoGPS, look at the example program NMEAloc.ino et al for the correct program structure.  The Troubleshooting section also contains some tips.