Ice Sheet System Model  4.18
Code documentation
Functions
issm_ocean.cpp File Reference

: ISSM OCEAN main program. More...

#include "./issm.h"
#include <stdlib.h>

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Detailed Description

: ISSM OCEAN main program.

Definition in file issm_ocean.cpp.

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 8 of file issm_ocean.cpp.

8  {
9 
10  /*diverse:*/
11  int icecommsize;
12  int my_rank,my_local_rank,my_size,my_local_size;
13  ISSM_MPI_Comm worldcomm;
14  ISSM_MPI_Comm modelcomm;
15  ISSM_MPI_Comm frommitgcm;
16  ISSM_MPI_Comm tomitgcmcomm;
17  ISSM_MPI_Status status;
18 
19  /*Initialize exception trapping: */
21 
22  /*Initialize environment (MPI, PETSC, MUMPS, etc ...)*/
23  worldcomm=EnvironmentInit(argc,argv);
24 
25  /*What is my rank?:*/
26  ISSM_MPI_Comm_rank(worldcomm,&my_rank);
27  ISSM_MPI_Comm_size(worldcomm,&my_size);
28 
29  /*First model is ice, second is ocean*/
30  /*ice comm size: */
31  icecommsize=(int) strtol(argv[2], (char **)NULL, 10);
32 
33  /*Split world into sub-communicators for each and every model:*/
34  ISSM_MPI_Comm_split(worldcomm,0, my_rank, &modelcomm);
35  ISSM_MPI_Comm_rank(modelcomm,&my_local_rank);
36  ISSM_MPI_Comm_size(modelcomm,&my_local_size);
37 
38  ISSM_MPI_Intercomm_create( modelcomm, 0, worldcomm, my_local_size, 0, &tomitgcmcomm);
39 
40  FemModel *femmodel = new FemModel(argc,argv,modelcomm);
41 
42  /*Now that the models are initialized, keep communicator information in the parameters datasets of each model: */
45 
46  /*Solve: */
47  femmodel->Solve();
48 
49  /*Output results: */
51 
52  /*Wrap up: */
53  femmodel->CleanUp();
54 
55  /*Delete Model: */
56  delete femmodel;
57 
58  /*Finalize environment:*/
60 
61  /*Finalize exception trapping: */
63 
64  /*Free ressources:*/
65 
66  /*Return unix success: */
67  return 0;
68 }
ISSM_MPI_Comm_split
int ISSM_MPI_Comm_split(ISSM_MPI_Comm comm, int color, int key, ISSM_MPI_Comm *newcomm)
Definition: issmmpi.cpp:528
ExceptionTrapEnd
#define ExceptionTrapEnd()
Definition: exceptions.h:64
FemModel::Solve
void Solve(void)
Definition: FemModel.cpp:883
OutputResultsx
void OutputResultsx(FemModel *femmodel)
Definition: OutputResultsx.cpp:17
ExceptionTrapBegin
#define ExceptionTrapBegin()
Definition: exceptions.h:61
FemModel::parameters
Parameters * parameters
Definition: FemModel.h:46
EnvironmentInit
ISSM_MPI_Comm EnvironmentInit(int argc, char **argv)
Definition: EnvironmentInit.cpp:12
WorldCommEnum
@ WorldCommEnum
Definition: EnumDefinitions.h:459
Parameters::AddObject
void AddObject(Param *newparam)
Definition: Parameters.cpp:67
ISSM_MPI_Comm_rank
int ISSM_MPI_Comm_rank(ISSM_MPI_Comm comm, int *rank)
Definition: issmmpi.cpp:198
ISSM_MPI_Status
int ISSM_MPI_Status
Definition: issmmpi.h:121
ISSM_MPI_Intercomm_create
int ISSM_MPI_Intercomm_create(ISSM_MPI_Comm comm, int local_leader, ISSM_MPI_Comm peer_comm, int remote_leader, int tag, ISSM_MPI_Comm *newintercomm)
Definition: issmmpi.cpp:542
FemModel
Definition: FemModel.h:31
ToMITgcmCommEnum
@ ToMITgcmCommEnum
Definition: EnumDefinitions.h:437
EnvironmentFinalize
void EnvironmentFinalize(void)
Definition: EnvironmentFinalize.cpp:12
ISSM_MPI_Comm
int ISSM_MPI_Comm
Definition: issmmpi.h:118
FemModel::CleanUp
void CleanUp(void)
Definition: FemModel.cpp:279
GenericParam
Definition: GenericParam.h:26
ISSM_MPI_Comm_size
int ISSM_MPI_Comm_size(ISSM_MPI_Comm comm, int *size)
Definition: issmmpi.cpp:209
femmodel
FemModel * femmodel
Definition: esmfbinders.cpp:16