summaryrefslogtreecommitdiff
path: root/src/main/InitialiseCactus.c
blob: ca4d9955e542903b247c57d4a81a03adbcea97fa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
 /*@@
   @file      InitialiseCactus.c
   @date      Fri Sep 18 14:04:02 1998
   @author    Tom Goodale
   @desc 
   Responsible for doing any cactus specific initialisations
   @enddesc 
 @@*/

#include <stdio.h>

#include "cctk.h"
#include "cctk_Flesh.h"

#include "cctk_Schedule.h"
#include "cctki_Schedule.h"

static char *rcsid = "$Header$";

CCTK_FILEVERSION(main_InitialiseCactus_c)

int ProcessCommandLine(int *inargc, char ***inargv, tFleshConfig *ConfigData);
int ProcessEnvironment(int *argc, char ***argv,tFleshConfig *ConfigData);


 /*@@
   @routine    CCTKi_InitialiseCactus
   @date       Fri Sep 18 14:05:21 1998
   @author     Tom Goodale
   @desc 
   
   @enddesc 
   @calls      ProcessCommandLine ProcessParameterDatabase CallStartupFunctions
   @calledby   main  
   @history 
 
   @endhistory 
   @var     argc
   @vdesc   The number of command line arguments
   @vtype   int *
   @vio     inout
   @vcomment 

   @endvar 
   @var     argv
   @vdesc   The command line arguments
   @vtype   char **
   @vio     inout
   @vcomment 
 
   @endvar 
   @var     ConfigData
   @vdesc   Flesh configuration data
   @vtype   tFleshConfig
   @vio     inout
   @vcomment 
 
   @endvar 

@@*/
int CCTKi_InitialiseCactus(int *argc, char ***argv, tFleshConfig *ConfigData)
{

  CCTKi_InitialiseSubsystemDefaults();

  CCTKi_ProcessEnvironment(argc, argv, ConfigData);

  CCTKi_ProcessCommandLine(argc, argv, ConfigData);

  CCTKi_CactusBanner();

  CCTKi_InitialiseDataStructures(ConfigData);

  CCTKi_ProcessParameterDatabase(ConfigData);

  CCTKi_InitialiseScheduler(ConfigData);

  CCTKi_CallStartupFunctions(ConfigData);

  CCTKi_PrintBanners();

  return 0;
}


 /*@@
   @routine    CCTKi_InitialiseScheduler
   @date       Fri Sep 17 19:34:55 1999
   @author     Tom Goodale
   @desc 
   Initialise all scheduled items
   @enddesc 
   @calls     
   @calledby   
   @history 
 
   @endhistory 

@@*/

int CCTKi_InitialiseScheduler(tFleshConfig *ConfigData)
{
  int retcode;
  extern void CCTKi_SetParameterSetMask(int mask);

  CCTKi_SetParameterSetMask(PARAMETER_RECOVERY_IN);

  if(CCTKi_BindingsParameterRecoveryInitialise() < 0)
    CCTK_WARN(0, "Failed to recover parameters");

  CCTKi_SetParameterSetMask(PARAMETER_RECOVERY_POST);

  CCTKi_BindingsScheduleInitialise();

  retcode = CCTKi_DoScheduleSortAllGroups();

  CCTK_PRINTSEPARATOR
  CCTK_SchedulePrint(NULL);
  CCTK_PRINTSEPARATOR

  return retcode;
}