1 |
! $Header$ |
! $Header$ |
2 |
! $Name$ |
! $Name$ |
3 |
|
|
4 |
! Top level ESMF based driver for embedded model configurations |
! Top level ESMF based driver for PRM embedded model configuration |
5 |
|
! A PRM configuration consists of one coarse grid model configuration |
6 |
|
! and one or more fine grid configurations that span a subset of the |
7 |
|
! physical grid in the coarse grid configuration at higher resolution. |
8 |
|
! In addition special pieces of code that couple the coarse model |
9 |
|
! to the fine model and the fine model to the coarse model are part |
10 |
|
! of the setup. Each of these pieces (the coarse grid model, the fine |
11 |
|
! grid models and the coarse to fine and fine to coarse coupling code) |
12 |
|
! is called a component. The setup is controlled by a top-level file of |
13 |
|
! settings that specifies the number of components to create and |
14 |
|
! associates names with those components that are used to distinguish |
15 |
|
! their roles. |
16 |
|
! |
17 |
|
|
18 |
! == Global data == |
! == Global data == |
19 |
! PRMTop :: top level module for PRM driver. |
! PRMTop :: top level module for PRM driver. |
29 |
! Boot up ESMF |
! Boot up ESMF |
30 |
! Calls ESMF initialization and reads in settings from |
! Calls ESMF initialization and reads in settings from |
31 |
! top-level startup file. |
! top-level startup file. |
32 |
|
! This creates the default VM which spans the entire set |
33 |
|
! of PET's (processors) available. |
34 |
CALL EEsmfBoot( 'eesmf.rc' ) |
CALL EEsmfBoot( 'eesmf.rc' ) |
35 |
|
|
36 |
! Setup the components. Returns an EEsmfComponentList |
! Setup the components. Returns an EEsmfComponentList |
37 |
! variable containing all the components that make up |
! variable containing all the components that make up |
38 |
! the PRM configuration. |
! the PRM configuration. These will be partitioned over |
39 |
|
! the PET's according to the PRM comfiguration file. |
40 |
CALL ComponentsInit( theComponents ) |
CALL ComponentsInit( theComponents ) |
41 |
|
|
42 |
! Run the components. Pass down the component list that |
! Run the components. Pass down the component list that |
43 |
! contains all the components that are executed in this |
! contains all the components that are to be executed in this |
44 |
! PRM configuration. |
! PRM configuration. |
45 |
CALL ComponentsRun( theComponents ) |
CALL ComponentsRun( theComponents ) |
46 |
|
|
47 |
! Clean up as needed |
! Clean up as needed |
49 |
CALL ComponentsFinalize( theComponents ) |
CALL ComponentsFinalize( theComponents ) |
50 |
|
|
51 |
END |
END |
|
|
|