1 |
cnh |
1.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 |