From 45b7a43576f27a0223a6c932eee7eaa6dedf6630 Mon Sep 17 00:00:00 2001 From: CGH0S7 <776459475@qq.com> Date: Thu, 26 Feb 2026 15:48:11 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=A8C=E7=AE=97=E5=AD=90=E5=92=8CF?= =?UTF-8?q?ortran=E7=AE=97=E5=AD=90=E7=9A=84=E6=95=B0=E5=AD=A6=E5=B7=AE?= =?UTF-8?q?=E5=BC=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AMSS_NCKU_source/bssn_rhs_c.C | 128 +++++++++++++++++++++++++++++++--- 1 file changed, 119 insertions(+), 9 deletions(-) diff --git a/AMSS_NCKU_source/bssn_rhs_c.C b/AMSS_NCKU_source/bssn_rhs_c.C index 52995a8..1086026 100644 --- a/AMSS_NCKU_source/bssn_rhs_c.C +++ b/AMSS_NCKU_source/bssn_rhs_c.C @@ -70,10 +70,34 @@ int f_compute_rhs_bssn(int *ex, double &T, const double FF = 0.75, eta = 2.0; const double F1o3 = 1.0/3.0, F2o3 = 2.0/3.0, F3o2 = 1.5, F1o6 = 1.0/6.0; const double F16 = 16.0, F8 = 8.0; - #if (GAUGE == 2 || GAUGE == 3 || GAUGE == 4 || GAUGE == 5) + #if (GAUGE == 2 || GAUGE == 3 || GAUGE == 4 || GAUGE == 5 || GAUGE == 6 || GAUGE == 7) double reta[all]; /* 使用时:reta[idx],其中 idx = i + nx*(j + ny*k) (Fortran列主序) */ #endif + + #if (GAUGE == 6 || GAUGE == 7) + int BHN = 0; + double Porg[9] = {0.0}; + double Mass[3] = {0.0}; + + extern "C" { + #ifdef fortran1 + void getpbh(int &, double *, double *); + #elif defined(fortran2) + void GETPBH(int &, double *, double *); + #else + void getpbh_(int &, double *, double *); + #endif + } + + #ifdef fortran1 + getpbh(BHN, Porg, Mass); + #elif defined(fortran2) + GETPBH(BHN, Porg, Mass); + #else + getpbh_(BHN, Porg, Mass); + #endif + #endif PI = acos(-1.0); dX = X[1] - X[0]; dY = Y[1] - Y[0]; @@ -966,11 +990,67 @@ int f_compute_rhs_bssn(int *ex, double &T, } // 1ms // - for(int i=0;i