int read_header ( ifstream & in, ofstream & log, earthquake & EQ ) {
    
    // Variable Definition
    
    string       lID, ldt, lnam, lm, eID, ID, dt, nam, geo, tm, tz, magnitude_type;
    int          err = 0;
    stringstream str;
    
    // Getting Information about Time and Date
    
    getline ( in, lID );
    getline ( in, ldt );
    getline ( in, lnam );
    getline ( in, lm );
    
    // Checking for the Error

    err = EQ.set_dt ( ldt, log );
    if ( err ) {
        str << "error in setting date. error code: " << err << endl;
        return 10;
    }
    
    err = EQ.set_mag( lm, log );
    if ( err ) {
        str << "error in setting magnitude. error code: " << err << endl;
        return 11;
    }
    
    str << eID << endl;
    print ( log, str );
    str.clear ();
    EQ.earthquake_name = lnam;
    EQ.id = lID;
    str << lnam << endl;
    print ( log, str, true );
    return 0;
}
void read_header(ifstream & in, ofstream & log) {
    
    string lID, ldt, lnam, lm, eID, ID, dt, nam, geo, tm, tz, magnitude_type;
    stringstream str;
    
    std::getline(in, lID);
    std::getline(in, ldt);
    std::getline(in, lnam);
    std::getline(in, lm);
    
    EQ.set_dt(ldt, log);
    EQ.set_mag(lm, log);
    
    str << eID << endl;
    print(log, str);
    str.clear();

    EQ.earthquake_name = lnam;
    EQ.id = lID;

    str << lnam << endl;
    print(log, str, true);
}
void process(ifstream & ifile, ofstream & log){
    
    double el = EQ.get_lon();
    stringstream str, str2;
    str.precision(3);
    str << "# " << EQ.get_day() << " " << EQ.get_month_str() << " "
    << EQ.get_year() << " " << setfill('0') << setw(2) << EQ.get_hour()
    << ":" << setfill('0') << setw(2) << EQ.get_min() << ":" << setfill('0')
    << setw(2) << EQ.get_sec() << '.' << setfill('0') << setw(3)
    << std::setprecision(0) << std::fixed << EQ.get_ms() << " " << EQ.tz
    << " " << EQ.get_magnitude_Type_str() << " " << std::fixed
    << std::setprecision(1) << EQ.get_magnitude() << " "
    << EQ.earthquake_name << " [" << EQ.id << "] (" << std::setprecision(2)
    << std::fixed << EQ.get_lon() << ", " << std::fixed << EQ.get_lat()
    << ", " << std::setprecision(1) << EQ.get_elv() << ")" << endl;
    
    sign = 0;
    
    for (int i = 0; i < valid; i++) {
        string s = stations[i].get_orientation();
        int n = s.size();
        for (size_t j = 0; j < n; j++) {
            
            str2 << EQ.id << '.'
            << stations[i].get_network_code_str() << '.'
            << stations[i].get_station_name() << '.'
            << stations[i].get_type_of_band_str()
            << stations[i].get_type_of_instrument_str()
            << s[j] << endl;
            
            sign++;
        }
    }
    
    str << sign << endl;
    
    print(log, str, true);
    
    print(log, str2, true);
}