1f34e7d5cSCameron Smith #include <FCMangle.h> 2f34e7d5cSCameron Smith 359599516SKenneth E. Jansen typedef double DARR2[2]; 459599516SKenneth E. Jansen 559599516SKenneth E. Jansen int lineIntPnt(int, DARR2**,double**); 659599516SKenneth E. Jansen 7f34e7d5cSCameron Smith #define symline FortranCInterface_GLOBAL_(symline, SYMLINE) 8f34e7d5cSCameron Smith void symline(int *n1, double pt[][4], double wt[], int *err) 959599516SKenneth E. Jansen { 10*a6e5c1a2SCameron Smith double *lwt = 0; 11*a6e5c1a2SCameron Smith DARR2 *lpt = 0; 1259599516SKenneth E. Jansen int i,j; 1359599516SKenneth E. Jansen *err = lineIntPnt(*n1, &lpt, &lwt); 1459599516SKenneth E. Jansen for(i=0; i < *n1; i++){ 1559599516SKenneth E. Jansen wt[i] = lwt[i]; 1659599516SKenneth E. Jansen for(j=0; j < 2; j++) 1759599516SKenneth E. Jansen pt[i][j] = lpt[i][j]; 1859599516SKenneth E. Jansen } 1959599516SKenneth E. Jansen } 2059599516SKenneth E. Jansen 2159599516SKenneth E. Jansen #include <stdio.h> 2259599516SKenneth E. Jansen 2359599516SKenneth E. Jansen #define QpNon -1.000000000000000 2459599516SKenneth E. Jansen #define Qp11 0.000000000000000 2559599516SKenneth E. Jansen #define Qw1 2.000000000000000 2659599516SKenneth E. Jansen 2759599516SKenneth E. Jansen #define Qp21 -0.577350269189626 2859599516SKenneth E. Jansen #define Qp22 0.577350269189626 2959599516SKenneth E. Jansen #define Qw2 1.000000000000000 3059599516SKenneth E. Jansen 3159599516SKenneth E. Jansen #define Qp31 -0.774596669241483 3259599516SKenneth E. Jansen #define Qp32 0.000000000000000 3359599516SKenneth E. Jansen #define Qp33 0.774596669241483 3459599516SKenneth E. Jansen #define Qw31 0.555555555555556 3559599516SKenneth E. Jansen #define Qw32 0.888888888888889 3659599516SKenneth E. Jansen 3759599516SKenneth E. Jansen /* typedef double DARR2[2] ; */ 3859599516SKenneth E. Jansen 3959599516SKenneth E. Jansen static double rst1[][2] = {{Qp11,QpNon}}; 4059599516SKenneth E. Jansen static double wt1[] = {Qw1}; 4159599516SKenneth E. Jansen 4259599516SKenneth E. Jansen static double rst2[][2] = {{Qp21,QpNon},{Qp22,QpNon}}; 4359599516SKenneth E. Jansen static double wt2[] = {Qw2,Qw2}; 4459599516SKenneth E. Jansen 4559599516SKenneth E. Jansen static double rst3[][2] = {{Qp31,QpNon},{Qp32,QpNon},{Qp33,QpNon}}; 4659599516SKenneth E. Jansen static double wt3[] = {Qw31,Qw32,Qw31}; 4759599516SKenneth E. Jansen 4859599516SKenneth E. Jansen 4959599516SKenneth E. Jansen int lineIntPnt(int nint, DARR2 **bcord, double **wt) 5059599516SKenneth E. Jansen { 5159599516SKenneth E. Jansen int retval = 1 ; 5259599516SKenneth E. Jansen if( nint == 1 ) {*bcord = rst1 ; *wt = wt1; } 5359599516SKenneth E. Jansen else if( nint == 2 ){*bcord = rst2 ; *wt = wt2; } 5459599516SKenneth E. Jansen else if( nint == 3 ){*bcord = rst3 ; *wt = wt3; } 5559599516SKenneth E. Jansen /* else if( nint == 4 ){*bcord = rst4 ; *wt = wt4; } 5659599516SKenneth E. Jansen else if( nint == 5 ){*bcord = rst5 ; *wt = wt5; }*/ 5759599516SKenneth E. Jansen else 5859599516SKenneth E. Jansen { 5959599516SKenneth E. Jansen fprintf(stderr,"\n%d integration points unsupported in symline.c; give {1,2,3}\n",nint); 6059599516SKenneth E. Jansen retval = 0; 6159599516SKenneth E. Jansen } 6259599516SKenneth E. Jansen return retval ; 6359599516SKenneth E. Jansen } 6459599516SKenneth E. Jansen 6559599516SKenneth E. Jansen 6659599516SKenneth E. Jansen 67