intlf.cpp
Go to the documentation of this file.00001 #include <iostream>
00002 #include <string>
00003 #include "ThreeDMTModel.h"
00004 #include <fstream>
00005
00006 using namespace std;
00007
00008
00009
00010 int main(void)
00011 {
00012 C3DModel *Model;
00013 string infilename,outfilename;
00014 double maxdepth;
00015 const double kmlatitude = 111194;
00016 const double kmlongitude = 71474;
00017
00018
00019
00020
00021 double xmin, ymin;
00022 int mode;
00023
00024 cout << "Modelfile: ";
00025 cin >> infilename;
00026 cout << "Type 1 for old Mackie, 2 for Winglink: ";
00027 cin >> mode;
00028 cout << "Depth: ";
00029 cin >> maxdepth;
00030 cout << "Xmin in degree: ";
00031 cin >> xmin;
00032 cout << "Ymin in degree: ";
00033 cin >> ymin;
00034 cout << "Outfile: ";
00035 cin >> outfilename;
00036 if (mode == 1)
00037 Model = new 3DMackieModel;
00038 else
00039 Model = new C3DWinglink;
00040 Model->GetData(infilename);
00041 Array<double,2> SumCond(Model->xsize.size(),Model->ysize.size());
00042 Array<double,1> xscale(Model->xsize.size()), yscale(Model->ysize.size());
00043 SumCond = 0;
00044 double currentdepth = 0;
00045 int layerindex = 0;
00046 while (currentdepth < maxdepth)
00047 {
00048 for (int i = 0; i < Model->xsize.size(); ++i)
00049 for (int j = 0; j < Model->ysize.size(); ++j)
00050 SumCond(i,j) += 1./Model->Resistivities(Model->Model(i,j,layerindex)) * Model->zsize(layerindex);
00051 currentdepth += Model->zsize(layerindex)/1000;
00052 cout << currentdepth << endl;
00053 ++layerindex;
00054 }
00055 xscale = 0;
00056 yscale = 0;
00057 for (int i = 1; i < Model->xsize.size(); ++i)
00058 xscale(i) = xscale(i-1) + Model->xsize(i-1);
00059 for (int i = 1; i < Model->ysize.size(); ++i)
00060 yscale(i) = yscale(i-1) + Model->ysize(i-1);
00061 ofstream outfile(outfilename.c_str());
00062 for (int i = 0; i < Model->xsize.size(); ++i)
00063 for (int j = 0; j < Model->ysize.size(); ++j)
00064 {
00065 outfile << ymin + yscale(j)/kmlongitude << " " << xmin + xscale(i)/kmlatitude << " " << SumCond(i,j) << endl;
00066 }
00067 }