1 |
PROGRAM MULTItop |
2 |
C |
3 |
C Generic top-level driver for multi-scale and/or multi-member component |
4 |
C code. The generic driver sets up the system to handle data transport |
5 |
C between multi-scale components. For now interpolation and/or extrapolation |
6 |
C are handled by the individual components. |
7 |
C |
8 |
C ESMF library through the LITE stub |
9 |
USE ESMF_MOD |
10 |
USE ESMF_LITE |
11 |
C Multi-scale and/or multi-member support library |
12 |
USE MULTI_SUPPORT |
13 |
|
14 |
C esmfVM :: ESMF virtual machine over which we will run |
15 |
C esmfRC :: ESMF return code |
16 |
C thisMulti :: Handle for a particular instance of the multi-scale support library |
17 |
TYPE (ESMF_VM) esmfVM |
18 |
INTEGER esmfRC |
19 |
TYPE (multiSession) thisMulti |
20 |
C |
21 |
C Boot up ESMF and get back the overall virtual machine |
22 |
CALL ESMF_Initialize( vm=esmfVM, rc=esmfRC ) |
23 |
C |
24 |
C Create and instance of the multi-scale support library running on |
25 |
C a particular virtual machine. |
26 |
CALL MULTIInit( thisMulti, |
27 |
& vm=esmfVM, |
28 |
& rootDir="multi01", |
29 |
& rootParmsFile="multi01.data" ) |
30 |
C |
31 |
DO WHILE ( time < endTime ) |
32 |
CALL MULTIRun( thisMulti ) |
33 |
time = time + rootTimeStep |
34 |
END DO |
35 |
C |
36 |
CALL MULTIFinalize( thisMulti ) |
37 |
C |
38 |
CALL ESMF_Finalize |
39 |
END |
40 |
C |
41 |
SUBROUTINE MULTIInit |
42 |
RETURN |
43 |
END |