Charj: Construct Range when a range is given.
[charm.git] / src / langs / f90charm / f90main.C
1 #include "f90main.h"
2 #include "charm-api.h"
3
4 extern "C" void FTN_NAME(F90CHARMMAIN,f90charmmain)(int, char **);
5
6 extern void _initCharm(int argc, char **argv);
7
8 CkChareID mainhandle;
9
10 // called from futil.f90 program main
11 extern "C" void FTN_NAME(CONVERSEMAIN, conversemain)(int *argc,char _argv[][80],int length[])
12 {
13   int i;
14   char **argv = new char*[*argc+2];
15
16   for(i=0;i<=*argc;i++) {
17     if (length[i] < 100) {
18       _argv[i][length[i]]='\0';
19       argv[i] = &(_argv[i][0]);
20     } else {
21       argv[i][0] = '\0';
22     }
23   }
24   argv[*argc+1]=0;
25
26   ConverseInit(*argc, argv, _initCharm, 0, 0);
27 }
28
29
30 f90main::f90main(CkArgMsg *msg)
31 {
32   int argc = msg->argc;
33   char **argv = msg->argv;
34   delete msg;
35
36   count = 0;
37   mainhandle = thishandle;
38
39   FTN_NAME(F90CHARMMAIN,f90charmmain)(argc, argv);
40
41   /*
42   int executor_grp = CProxy_executor::ckNew(); 
43   CProxy_executor grp(executor_grp);
44   grp.run();
45   */
46 }
47
48 void f90main::done()
49 {
50   count++;
51   if (count == CkNumPes()) CkExit();
52 }
53
54 /*
55 void executor::run()
56 {
57   CkPrintf("[%d] running.\n", CkMyPe());
58   int i;
59   main_(&i);
60   CkPrintf("%d\n", i);
61   CProxy_main mp(mainhandle);
62   mp.done();
63 }
64 */
65
66
67 #include "f90main.def.h"