00001 #include <string.h>
00002 #include <stdlib.h>
00003
00004 extern void cerro();
00005
00006 #include "machine.h"
00007 #include "MALLOC.h"
00008
00009 #ifdef _MSC_VER
00010 extern int F2C(arbor)();
00011 #endif
00012
00013 void C2F(dmtree)(i0,la1,lp1,ls1,m,n,pred,w)
00014 int *i0,*la1,*lp1,*ls1,*m,*n,*pred,*w;
00015 {
00016 int i,nndim;
00017 int *alphi,*beta,*f,*g,*ind,*pred1;
00018 double *z,*zsom;
00019 int isize,dsize;
00020 isize = sizeof(int); dsize = sizeof(double);
00021
00022 nndim = 2 * *n;
00023 if ((alphi = (int *)MALLOC(nndim * isize)) == NULL) {
00024 cerro("Running out of memory");
00025 return;
00026 }
00027 if ((beta = (int *)MALLOC(nndim * isize)) == NULL) {
00028 cerro("Running out of memory");
00029 return;
00030 }
00031 if ((f = (int *)MALLOC(nndim * isize)) == NULL) {
00032 cerro("Running out of memory");
00033 return;
00034 }
00035 if ((g = (int *)MALLOC(nndim * isize)) == NULL) {
00036 cerro("Running out of memory");
00037 return;
00038 }
00039 if ((ind = (int *)MALLOC(nndim * isize)) == NULL) {
00040 cerro("Running out of memory");
00041 return;
00042 }
00043 if ((pred1 = (int *)MALLOC(nndim * isize)) == NULL) {
00044 cerro("Running out of memory");
00045 return;
00046 }
00047 if ((z = (double *)MALLOC(nndim * dsize)) == NULL) {
00048 cerro("Running out of memory");
00049 return;
00050 }
00051 if ((zsom = (double *)MALLOC(nndim * dsize)) == NULL) {
00052 cerro("Running out of memory");
00053 return;
00054 }
00055
00056 F2C(arbor)(alphi,beta,f,g,i0,ind,la1,lp1,ls1,m,n,&nndim,pred1,w,z,zsom);
00057
00058 for (i = 0; i < *n; i++) pred[i] = pred1[i];
00059
00060 FREE(alphi); FREE(beta); FREE(f); FREE(g); FREE(ind);
00061 FREE(pred1); FREE(z); FREE(zsom);
00062 }