C/C++ example for getfinishflag

 

#include "stdafx.h"

#include "DllFunc.h"

#include <stdio.h>

 

FILE* fp;

 

Test_USUB_axial_API void __cdecl axial_force

           (double time, double upar[], int npar, int jflag, int iflag, double* result)

{

           using namespace rd_syscall;

           // Parameter Information

           //   time: Simulation time of RD/Solver

           //   upar: Parameters defined by user

           //   npar: Number of user parameters

           //   jflag: When RD/Solver evaluates a Jacobian, the flag is true.

           //   iflag: When RD/Solver initializes arrays, the flag is true.

           //   result: Returned value

 

           // User statement

           // Local Varialbe Definition

           int mkid[3], errflg, akispl_id;

           double disp, value[3];

 

           // Assign Impact Parameters

           mkid[0] = (int) upar[0];

           mkid[1] = (int) upar[1];

           mkid[2] = (int) upar[2];

           akispl_id = (int) upar[3];

 

 

           // Call the Auxiliary subroutines for Calculation

           sysfnc("DX", mkid, 3, &disp, &errflg);

           rd_akispl(disp, 0, akispl_id, 0, value, &errflg);

 

           // Assign the Returned Value

           *result = value[0];

 

   // Open File

   if (iflag)

   {

      fp = fopen("test_result.txt","w");

   }

 

   // Write File

   fprintf(fp,"result =%f", *result);

 

   // Close File

   int flagEnd = 0;

   getfinishflag(&flagEnd);

   if (flagEnd)

   {

      fclose(fp);

   }

}