Back to OASIS4 home

Global Variables in the Transformer (defined in oasis4/src/prismdrv.F90)

Drv_Procs (il_size=total_nb_of_procs_driver_appl) : of type Drv_Proc_manage (type defined in prismdrv),
contains infos for process management.
Allocation in prismdrv_init_appl :  ALLOCATE(Drv_Procs(il_size), stat = id_err)

Drv_Exchanges (Number_of_Exchanges) : of type Drv_Exchange (type defined in prismdrv), contains infos
about the exchanges of transients proc to proc.
1 exchange = (one source grid, one target grid, one partition, one interpolation) + ((EPIOS,EPIOT)=EPIO) associated.
Clones of the different transient fields defined on the exchange.
When the Driver is parallel, the EPIO are distributed over the different procs in a loop.
Allocation in prismdrv_set_smioc_info : ALLOCATE(Drv_Exchanges(Number_of_Exchanges), stat = id_err) for the master PRISM_root
Allocation in prismtrs_bcats2trs : ALLOCATE(Drv_Exchanges(Number_of_Exchanges), stat = id_err) for the other procs of the Transformer

Drv_Epios (
Number_of_Epios_allocated) : of type Drv_EPIO (type defined in prismdrv), the EPIO beeing the ensemble of points used in the interpolation (see above).
Contains coordinates of source epio and associated target epio and of the neighbours of the epio.
Allocation in prismtrs_set_src_epio_dble and
in prismtrs_set_src_epio_real : ALLOCATE (Drv_Epios(Number_of_Epios_allocated), STAT = id_err)

Drv_Grids  : of type Drv_Grid : see if this structure is necessary or not

Drv_Interps (Number_of_Interps) : of type Drv_Interp (type defined in prismdrv).
Allocation in prismdrv_set_smioc_info : ALLOCATE(Drv_Interps(Number_of_Interps), stat = id_err)
for the master PRISM_root
Allocation in prismtrs_bcats2trs : ALLOCATE(Drv_Interps(Number_of_Interps), stat = id_err) for the other procs of the Transformer

Drv_Transfs (Number_of_Transfs) : transformations table
Allocation in prismdrv_set_smioc_info : ALLOCATE(Drv_Transfs(Number_of_Transfs), stat = id_err)

sga_experiment_start_date, sga_experiment_end_date, sga_run_start_date, sga_run_end_date : of type PRISM_Time_Struct (type defined in oasis4/lib/common_oa4/src/prism_constants), dates of the simulations.
Initialisation when reading the scc.xml file in
prismdrv_set_scc_info.

cga_appli_name (0:ig_nb_appl) : character, Name of the different applications of the simulation.
Allocation in prismdrv_set_scc_info : ALLOCATE ( cga_appli_name(0:ig_nb_appl), STAT = id_err )

cga_appli_exe_name (0:ig_nb_appl) : character, Name of the different applications executables of the simulation.
Allocation in prismdrv_set_scc_info : ALLOCATE ( cga_appli_exe_name(0:ig_nb_appl), STAT = id_err )

cga_appli_args (:) : character, Argument of the different applications executables of the simulation.
Allocation in prismdrv_set_scc_info : ALLOCATE ( cga_appli_args(0:0), STAT = id_err ) if no args or ALLOCATE ( cga_appli_args(ig_nb_tot_args), STAT = id_err )

cga_appli_hostname (1:ig_nb_tot_hosts) : character, Name of the different applications executables of the simulation.
Allocation in prismdrv_set_scc_info : ALLOCATE ( cga_appli_hostname(ig_nb_tot_hosts), STAT = id_err )

cga_appli_compname (1:ig_nb_tot_comps) : character, Name of the different components for each application.
Allocation in prismdrv_set_scc_info : ALLOCATE ( cga_appli_compname(ig_nb_tot_comps), STAT = id_err )

iga_appli_nb_hosts (:) : integer, Number of hosts for each application.
Allocation in prismdrv_set_scc_info : ALLOCATE ( iga_appli_nb_hosts(0:ig_nb_appl), STAT = id_err )

iga_appli_nb_pes (0:ig_nb_appl) : integer, Number of processes for each application.
Allocation in prismdrv_set_scc_info : ALLOCATE ( iga_appli_nb_pes(0:ig_nb_appl), STAT = id_err )

iga_appli_nb_comps (0:ig_nb_appl) : integer, Number of components for each application.
Allocation in prismdrv_set_scc_info : ALLOCATE ( iga_appli_nb_comps(0:ig_nb_appl), STAT = id_err )

iga_appli_nb_args (0:ig_nb_appl) : integer, Number of arguments for each application
Allocation in prismdrv_set_scc_info : ALLOCATE ( iga_appli_nb_args(0:ig_nb_appl), STAT = id_err )

iga_appli_hostnbprocs (ig_nb_tot_hosts) : integer, Number of processes for each hosts of an application
Allocation in prismdrv_set_scc_info : ALLOCATE ( iga_appli_hostnbprocs(ig_nb_tot_hosts), STAT = id_err )

iga_appli_nbtot_ranksets (1:ig_nb_appl) : integer, Total number of rank sets for all applications in the experiment
Allocation in prismdrv_set_scc_info : ALLOCATE ( iga_appli_nbtot_ranksets(1:ig_nb_appl), STAT = id_err )

iga_appli_redirect (0:ig_nb_appl) : integer, Stdout redirected or not for all applications
Allocation in prismdrv_set_scc_info : ALLOCATE ( iga_appli_redirect(0:ig_nb_appl), STAT = id_err )

comm_coupling (0:ig_nb_appl) : integer,
Coupler internal communicator for communication with individual applications
Allocation in prismdrv_set_scc_info : ALLOCATE ( comm_coupling(0:ig_nb_appl), STAT = id_err )

iga_appli_compnbranksets (ig_nb_tot_comps) : integer, Number of rank sets (min-max-inc) for all components for all applications
Allocation in prismdrv_set_scc_info : ALLOCATE ( iga_appli_compnbranksets(ig_nb_tot_comps), STAT = id_err )

iga_appli_compranks (ig_nbtot_ranksets,3) : integer, Array of rank sets (min-max-inc) for all components for all applications
Allocation in prismdrv_set_scc_info : ALLOCATE ( iga_appli_compranks(ig_nbtot_ranksets,3), STAT = id_err )

Dimensionning numbers
Integer :: ig_driver_nb_pes   ! nb of pes for the driver
Integer :: ig_nb_appl         ! nb of applications
Integer :: ig_nb_tot_pes      ! nb of processes
Integer :: ig_nb_tot_hosts    ! total number of hosts
Integer :: ig_nb_tot_comps    ! total number of comps
Integer :: ig_nb_tot_args     ! total number of args
INTEGER :: ig_nb_tot_unitsets ! total number of Forrean unit sets
INTEGER :: ig_nb_tot_grids    ! total number of grids
INTEGER :: ig_nb_tot_transi   ! total number of transients
INTEGER :: ig_nb_tot_persis   ! total number of presistents
Integer :: Number_of_Epios_allocated  ! Number of allocated Epios
Integer :: Number_of_comms         ! Number of exchanges of Transients
Integer :: Number_of_Interps       ! Number of interpolations
Integer :: Number_of_Transfs       ! Number of transformations
Integer :: Number_of_Exchanges   ! Number of exchanges transiting
                                                           ! through the transformer

MPI implementation
Integer :: ig_MPI

Communicators
  Integer :: comm_drv_global      ! Global communicator
  Integer :: comm_drv_local        ! Driver communicator
  Integer :: comm_drv_psmile     ! communicator that gathers psmile appli.
  Integer :: driver_rank
  Integer :: comm_drv_trans       ! Global communicator dedicated to the trans.