After long hours of manipulations and editing the code as well as some *.cpp files, I am still unlucky for the two shield. Below is my simplified code. Any comments will be greatly appreciated.
#include <SPI.h>
#include <SD.h>
#define RESET 8
#define RDY 9
const int sdSS = 4;
byte firstByte;
byte secondByte;
byte thirdByte;
unsigned long Dout = 0;
char charbuff[10];
void setup() {
 Serial.begin(9600);
 /*---////////// Set up AD7730 ///////////---*/
 Serial.println("Initializing AD7730 Shield...");
 pinMode(RDY, INPUT);
 pinMode(MISO, INPUT);  // AD7730 DOUT - Pin 12 Arduino
 pinMode(MOSI, INPUT);  // AD7730 DIN - Pin 11 Arduino
 pinMode(RESET, OUTPUT);
 SPI.begin();
 SPI.setDataMode(SPI_MODE3);
 SPI.setBitOrder(MSBFIRST);
 SPI.setClockDivider(SPI_CLOCK_DIV16);
 // Reset AD7730
 digitalWrite(RESET, LOW);
 delay(200);
 digitalWrite(RESET, HIGH);
 delay(200);
 // Set next action to Write to Filter Register
 digitalWrite(SS, LOW); // AD7730 CS' - Pin 10 - Arduino
 SPI.transfer(0x03);
 digitalWrite(SS, HIGH);
 // Write Values to Filter Register
 digitalWrite(SS, LOW);
 SPI.transfer(0x80);
 SPI.transfer(0x00);
 SPI.transfer(0x10);
 digitalWrite(SS, HIGH);
 delay(30);
 // Set next action to Write to DAC Register
 digitalWrite(SS, LOW);
 SPI.transfer(0x04);
 digitalWrite(SS, HIGH);
 // Write Values to DAC Register
 digitalWrite(SS, LOW);
 SPI.transfer(0x00);
 digitalWrite(SS, HIGH);
 delay(30);
 // Set next action to Write to Mode Register
 digitalWrite(SS, LOW);
 SPI.transfer(0x02);
 digitalWrite(SS, HIGH);
 // Internal Full Calibration
 digitalWrite(SS, LOW);
 SPI.transfer(0xB1);
 SPI.transfer(0x80);
 digitalWrite(SS, HIGH);
 while (digitalRead(RDY) != LOW) {
 } // Wait until AD7730 is ready.
 // Set next action to Write to Mode Register
 digitalWrite(SS, LOW);
 SPI.transfer(0x02);
 digitalWrite(SS, HIGH);
 // Internal Zero Calibration
 digitalWrite(SS, LOW);
 SPI.transfer(0x91);
 SPI.transfer(0x80);
 digitalWrite(SS, HIGH);
 while (digitalRead(RDY) != LOW) {
 } // Wait until AD7730 is ready.
 // Set next action to Write to Mode Register
 digitalWrite(SS, LOW);
 SPI.transfer(0x02);
 digitalWrite(SS, HIGH);
 // Write Continuous Mode
 digitalWrite(SS, LOW);
 SPI.transfer(0x31); // 0x21 for bipolar
 SPI.transfer(0x80);
 digitalWrite(SS, HIGH);
 while (digitalRead(RDY) != LOW) {
 } // Wait until AD7730 is ready.
 // Set next action is to read data continuosly from Data Register
 digitalWrite(SS, LOW);
 SPI.transfer(0x21);
 digitalWrite(SS, HIGH);
 digitalWrite(MOSI, LOW);
 Serial.println("AD7730 initialization done.");
 if (SD.begin(sdSS)) {
  Serial.println("SD Initialization done.");
 }
 else {
  Serial.println("SD Initialization failed.");
 }
}
void loop() {
 while (digitalRead(RDY) != LOW) {
 }
 digitalWrite(SS, LOW); // Select AD7730
 firstByte = SPI.transfer(0);
 secondByte = SPI.transfer(0);
 thirdByte = SPI.transfer(0);
 digitalWrite(SS, HIGH); // Deselect AD7730
 Dout = thirdByte + secondByte * 256L + firstByte * 256L * 256L;
 Serial.println(Dout);
 float fDout = Dout;
 dtostrf(fDout, 4, 0, charbuff);
 File myFile = SD.open("MERCON.txt", FILE_WRITE);
 if (myFile) {
  Serial.print("Saving to file...");
  myFile.println(charbuff);
  myFile.close();
  Serial.println("done.");
 }
 else {
  Serial.println("Failed to open file!");
 }
 delay(3000);
}
When written separately, both initialization went through and working. However, when I combined them AD7730 initialization does not continue. I know there is a solution to m problem since SPI interfacing was designed for multiple device, I just don't know yet the right algo for this to shields.