1 #include <FCMangle.h> 2 3 typedef double DARR2[2]; 4 5 int lineIntPnt(int, DARR2**,double**); 6 7 #define symline FortranCInterface_GLOBAL_(symline, SYMLINE) 8 void symline(int *n1, double pt[][4], double wt[], int *err) 9 { 10 double *lwt = 0; 11 DARR2 *lpt = 0; 12 int i,j; 13 *err = lineIntPnt(*n1, &lpt, &lwt); 14 for(i=0; i < *n1; i++){ 15 wt[i] = lwt[i]; 16 for(j=0; j < 2; j++) 17 pt[i][j] = lpt[i][j]; 18 } 19 } 20 21 #include <stdio.h> 22 23 #define QpNon -1.000000000000000 24 #define Qp11 0.000000000000000 25 #define Qw1 2.000000000000000 26 27 #define Qp21 -0.577350269189626 28 #define Qp22 0.577350269189626 29 #define Qw2 1.000000000000000 30 31 #define Qp31 -0.774596669241483 32 #define Qp32 0.000000000000000 33 #define Qp33 0.774596669241483 34 #define Qw31 0.555555555555556 35 #define Qw32 0.888888888888889 36 37 /* typedef double DARR2[2] ; */ 38 39 static double rst1[][2] = {{Qp11,QpNon}}; 40 static double wt1[] = {Qw1}; 41 42 static double rst2[][2] = {{Qp21,QpNon},{Qp22,QpNon}}; 43 static double wt2[] = {Qw2,Qw2}; 44 45 static double rst3[][2] = {{Qp31,QpNon},{Qp32,QpNon},{Qp33,QpNon}}; 46 static double wt3[] = {Qw31,Qw32,Qw31}; 47 48 49 int lineIntPnt(int nint, DARR2 **bcord, double **wt) 50 { 51 int retval = 1 ; 52 if( nint == 1 ) {*bcord = rst1 ; *wt = wt1; } 53 else if( nint == 2 ){*bcord = rst2 ; *wt = wt2; } 54 else if( nint == 3 ){*bcord = rst3 ; *wt = wt3; } 55 /* else if( nint == 4 ){*bcord = rst4 ; *wt = wt4; } 56 else if( nint == 5 ){*bcord = rst5 ; *wt = wt5; }*/ 57 else 58 { 59 fprintf(stderr,"\n%d integration points unsupported in symline.c; give {1,2,3}\n",nint); 60 retval = 0; 61 } 62 return retval ; 63 } 64 65 66 67