1 |
edhill |
1.9 |
C $Header: /u/u3/gcmpack/MITgcm/pkg/mnc/mnc_test_001.T,v 1.8 2004/01/18 23:23:15 edhill Exp $ |
2 |
edhill |
1.1 |
C $Name: $ |
3 |
|
|
|
4 |
|
|
C Simple test program for MNC |
5 |
|
|
|
6 |
|
|
PROGRAM mnc_test_001 |
7 |
|
|
|
8 |
|
|
implicit none |
9 |
edhill |
1.2 |
#include "MNC_OPTIONS.h" |
10 |
edhill |
1.1 |
#include "EEPARAMS.h" |
11 |
|
|
|
12 |
|
|
C Functions |
13 |
|
|
integer ILNBLNK |
14 |
|
|
|
15 |
|
|
C Local Variables |
16 |
edhill |
1.4 |
integer MAX_STR, MAX_NAMES, MAX_DIM, MAX_STOR |
17 |
|
|
PARAMETER ( MAX_STR = 100 ) |
18 |
|
|
PARAMETER ( MAX_NAMES = 10 ) |
19 |
|
|
PARAMETER ( MAX_DIM = 10 ) |
20 |
|
|
PARAMETER ( MAX_STOR = 1000 ) |
21 |
|
|
integer ndim, dims(MAX_DIM) |
22 |
|
|
integer myThid, i,j,k,l,ii, n, ind, fid |
23 |
edhill |
1.1 |
character*(MAX_LEN_MBUF) msgbuf |
24 |
edhill |
1.5 |
character*(MAX_STR) blank, fname, gname1,gname2, vname1,vname2 |
25 |
|
|
character*(MAX_STR) atname, atval, units |
26 |
edhill |
1.4 |
character*(MAX_STR) dnames(MAX_NAMES) |
27 |
edhill |
1.3 |
REAL*8 fillval |
28 |
edhill |
1.5 |
REAL*8 var(MAX_STOR), tvar(MAX_STOR) |
29 |
edhill |
1.1 |
|
30 |
edhill |
1.2 |
print*, '=== Starting Program: mnc_test_001 ===' |
31 |
edhill |
1.4 |
|
32 |
|
|
print*, ' Initalizing variables ...' |
33 |
edhill |
1.2 |
DO i = 1,MAX_STR |
34 |
|
|
blank(i:i) = ' ' |
35 |
|
|
ENDDO |
36 |
|
|
DO i = 1,MAX_NAMES |
37 |
edhill |
1.4 |
dnames(i)(1:MAX_STR) = blank(1:MAX_STR) |
38 |
edhill |
1.2 |
ENDDO |
39 |
|
|
fname(1:MAX_STR) = blank(1:MAX_STR) |
40 |
edhill |
1.5 |
gname1(1:MAX_STR) = blank(1:MAX_STR) |
41 |
|
|
gname2(1:MAX_STR) = blank(1:MAX_STR) |
42 |
|
|
vname1(1:MAX_STR) = blank(1:MAX_STR) |
43 |
|
|
vname2(1:MAX_STR) = blank(1:MAX_STR) |
44 |
edhill |
1.3 |
units(1:MAX_STR) = blank(1:MAX_STR) |
45 |
|
|
atname(1:MAX_STR) = blank(1:MAX_STR) |
46 |
|
|
atval(1:MAX_STR) = blank(1:MAX_STR) |
47 |
edhill |
1.2 |
fname(1:12) = 'test_001.nc ' |
48 |
edhill |
1.4 |
ndim = 4 |
49 |
|
|
dims(1) = 7 |
50 |
|
|
dims(2) = 4 |
51 |
|
|
dims(3) = 2 |
52 |
edhill |
1.8 |
dims(4) = -1 |
53 |
edhill |
1.4 |
dnames(1)(1:1) = 'X' |
54 |
|
|
dnames(2)(1:1) = 'Y' |
55 |
|
|
dnames(3)(1:1) = 'Z' |
56 |
edhill |
1.8 |
dnames(4)(1:1) = 'T' |
57 |
edhill |
1.4 |
myThid = 1 |
58 |
|
|
C In FORTRAN, the first variable cycles most quickly |
59 |
|
|
DO ii = 1,MAX_STOR |
60 |
|
|
var(ii) = 0.21 |
61 |
edhill |
1.5 |
tvar(ii) = 0.23 |
62 |
edhill |
1.4 |
ENDDO |
63 |
|
|
ii = 0 |
64 |
|
|
DO l = 1,dims(3) |
65 |
|
|
DO k = 1,dims(3) |
66 |
|
|
DO j = 1,dims(2) |
67 |
|
|
DO i = 1,dims(1) |
68 |
|
|
ii = ii + 1 |
69 |
|
|
var(ii) = ((i*100 + j)*100 + k)*100 + l |
70 |
|
|
ENDDO |
71 |
|
|
ENDDO |
72 |
|
|
ENDDO |
73 |
|
|
ENDDO |
74 |
edhill |
1.2 |
|
75 |
|
|
print*, ' Calling MNC_INIT() ...' |
76 |
|
|
CALL MNC_INIT(myThid) |
77 |
|
|
|
78 |
edhill |
1.7 |
print*, ' Calling MNC_FILE_CREATE() ...' |
79 |
|
|
CALL MNC_FILE_CREATE(myThid, fname) |
80 |
|
|
|
81 |
edhill |
1.2 |
print*, ' Calling MNC_DIM_INIT() ...' |
82 |
edhill |
1.4 |
DO i = 1,ndim |
83 |
edhill |
1.9 |
CALL MNC_DIM_INIT(myThid,fname, dnames(i),dims(i)) |
84 |
edhill |
1.7 |
ii = ILNBLNK(dnames(i)) |
85 |
|
|
print*, ' ... created dimension: ', dnames(i)(1:ii) |
86 |
edhill |
1.4 |
ENDDO |
87 |
edhill |
1.2 |
|
88 |
|
|
print*, ' Calling MNC_GRID_INIT() ...' |
89 |
edhill |
1.5 |
gname1(1:10) = 'xyzt ' |
90 |
edhill |
1.7 |
CALL MNC_GRID_INIT(myThid,fname, gname1, ndim, dnames) |
91 |
edhill |
1.5 |
gname2(1:10) = 't ' |
92 |
edhill |
1.7 |
CALL MNC_GRID_INIT(myThid,fname, gname2, 1, dnames(4)) |
93 |
edhill |
1.3 |
|
94 |
|
|
print*, ' Calling MNC_VAR_INIT_DBL() ...' |
95 |
edhill |
1.5 |
vname1(1:4) = 'time' |
96 |
|
|
units(1:19) = 'days since 1970-1-1' |
97 |
edhill |
1.7 |
CALL MNC_VAR_INIT_DBL(myThid,fname, gname2, vname1, units ) |
98 |
edhill |
1.5 |
vname2(1:4) = 'temp' |
99 |
edhill |
1.6 |
units(1:19) = 'deg C ' |
100 |
edhill |
1.7 |
CALL MNC_VAR_INIT_DBL(myThid,fname, gname1, vname2, units ) |
101 |
edhill |
1.3 |
|
102 |
|
|
print*, ' Calling MNC_VAR_ADD_ATTR_STR() ...' |
103 |
edhill |
1.6 |
atname(1:9) = 'grid_type' |
104 |
|
|
CALL MNC_VAR_ADD_ATTR_INT(myThid,fname,vname1, atname, 1, 1) |
105 |
edhill |
1.5 |
atname(1:11) = 'valid_range' |
106 |
|
|
tvar(1) = -23.5 |
107 |
|
|
tvar(2) = 176.75 |
108 |
|
|
CALL MNC_VAR_ADD_ATTR_DBL(myThid,fname,vname2, atname, 2, tvar) |
109 |
edhill |
1.4 |
|
110 |
|
|
print*, ' Calling MNC_VAR_WRITE_DBL() ...' |
111 |
edhill |
1.5 |
CALL MNC_VAR_WRITE_DBL(myThid, fname, vname1, var) |
112 |
edhill |
1.4 |
print*, ' Calling MNC_VAR_WRITE_DBL() ...' |
113 |
edhill |
1.5 |
CALL MNC_VAR_WRITE_DBL(myThid, fname, vname2, var) |
114 |
|
|
|
115 |
edhill |
1.7 |
CALL MNC_DUMP() |
116 |
edhill |
1.2 |
|
117 |
|
|
print*, ' Calling MNC_FILE_CLOSE() ...' |
118 |
|
|
CALL MNC_FILE_CLOSE(myThid, fname) |
119 |
edhill |
1.9 |
|
120 |
|
|
CALL MNC_DUMP() |
121 |
|
|
|
122 |
|
|
print*, '==========================================' |
123 |
|
|
|
124 |
|
|
print*, ' Calling MNC_FILE_READALL() ...' |
125 |
|
|
CALL MNC_FILE_READALL(myThid, fname) |
126 |
|
|
|
127 |
|
|
CALL MNC_DUMP() |
128 |
edhill |
1.2 |
|
129 |
|
|
print*, '=== Ending Program: mnc_test_001 ===' |
130 |
edhill |
1.1 |
|
131 |
|
|
END |
132 |
|
|
|
133 |
|
|
CEH3 ;;; Local Variables: *** |
134 |
|
|
CEH3 ;;; mode:fortran *** |
135 |
|
|
CEH3 ;;; End: *** |