75 lines
1.4 KiB
C
75 lines
1.4 KiB
C
// $Id: transpbh.C,v 1.2 2013/04/19 03:49:25 zjcao Exp $
|
|
#ifdef newc
|
|
#include <iostream>
|
|
#include <iomanip>
|
|
#include <fstream>
|
|
#include <cstdlib>
|
|
#include <cstdio>
|
|
#include <string>
|
|
#include <cmath>
|
|
using namespace std;
|
|
#else
|
|
#include <iostream.h>
|
|
#include <iomanip.h>
|
|
#include <fstream.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <math.h>
|
|
#endif
|
|
|
|
#include "macrodef.h"
|
|
|
|
// transmit black hole's position from bssn class
|
|
|
|
int BHN;
|
|
double Mass[3];
|
|
double PBH[9];
|
|
|
|
void setpbh(int iBHN, double **iPBH, double *iMass, int rBHN)
|
|
{
|
|
BHN = Mymax(iBHN, rBHN);
|
|
for (int i = 0; i < iBHN; i++)
|
|
{
|
|
for (int j = 0; j < 3; j++)
|
|
PBH[3 * i + j] = iPBH[i][j];
|
|
Mass[i] = iMass[i];
|
|
}
|
|
if (BHN < rBHN)
|
|
{
|
|
if (rBHN > 2)
|
|
cout << "error in transpbh.C: something wrong." << endl;
|
|
else
|
|
{
|
|
for (int j = 0; j < 3; j++)
|
|
PBH[3 + j] = -iPBH[0][j];
|
|
|
|
Mass[1] = Mass[0];
|
|
}
|
|
}
|
|
}
|
|
extern "C"
|
|
{
|
|
|
|
#ifdef fortran1
|
|
void getpbh
|
|
#endif
|
|
#ifdef fortran2
|
|
void GETPBH
|
|
#endif
|
|
#ifdef fortran3
|
|
void
|
|
getpbh_
|
|
#endif
|
|
(int &oBHN, double *oPBH, double *oMass)
|
|
{
|
|
oBHN = BHN;
|
|
for (int i = 0; i < BHN; i++)
|
|
oMass[i] = Mass[i];
|
|
for (int i = 0; i < 3 * BHN; i++)
|
|
oPBH[i] = PBH[i];
|
|
|
|
// printf("have set BH_num = %d\n",oBHN);
|
|
}
|
|
}
|