/[MITgcm]/MITgcm/pkg/mnc/mnc_test_001.T
ViewVC logotype

Contents of /MITgcm/pkg/mnc/mnc_test_001.T

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.10 - (show annotations) (download) (as text)
Wed Feb 4 05:45:09 2004 UTC (20 years, 4 months ago) by edhill
Branch: MAIN
CVS Tags: checkpoint52l_pre, hrcube4, checkpoint52j_post, checkpoint52l_post, checkpoint52k_post, hrcube5, checkpoint52j_pre, hrcube_3
Changes since 1.9: +3 -3 lines
File MIME type: application/x-troff
 o working (though incomplete) version of the "wrapper":
   - 149 pre-defined grids:
     - all "meaningful" X,Y,Z,T combinations
     - X,Y with or without halos
     - Horiz: centered, U, V, and corner (vorticity) grids
     - Vert: centered or interface
   - just two function calls to write a variable using one of the
     pre-defined grids
 o tile numbering scheme for both cube and XY grids
 o read, write, and append NetCDF files
 o checks for (acceptable) re-definition of dims, grids, and vars
 o numerous small bug fixes
 o warning: the two mnc_model_* files are now broken/obsolete and
   will soon be removed

1 C $Header: /u/u3/gcmpack/MITgcm/pkg/mnc/mnc_test_001.T,v 1.9 2004/01/25 00:22:57 edhill Exp $
2 C $Name: $
3
4 C Simple test program for MNC
5
6 PROGRAM mnc_test_001
7
8 implicit none
9 #include "MNC_OPTIONS.h"
10 #include "EEPARAMS.h"
11
12 C Functions
13 integer ILNBLNK
14
15 C Local Variables
16 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 character*(MAX_LEN_MBUF) msgbuf
24 character*(MAX_STR) blank, fname, gname1,gname2, vname1,vname2
25 character*(MAX_STR) atname, atval, units
26 character*(MAX_STR) dnames(MAX_NAMES)
27 REAL*8 fillval
28 REAL*8 var(MAX_STOR), tvar(MAX_STOR)
29
30 print*, '=== Starting Program: mnc_test_001 ==='
31
32 print*, ' Initalizing variables ...'
33 DO i = 1,MAX_STR
34 blank(i:i) = ' '
35 ENDDO
36 DO i = 1,MAX_NAMES
37 dnames(i)(1:MAX_STR) = blank(1:MAX_STR)
38 ENDDO
39 fname(1:MAX_STR) = blank(1:MAX_STR)
40 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 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 fname(1:12) = 'test_001.nc '
48 ndim = 4
49 dims(1) = 7
50 dims(2) = 4
51 dims(3) = 2
52 dims(4) = -1
53 dnames(1)(1:1) = 'X'
54 dnames(2)(1:1) = 'Y'
55 dnames(3)(1:1) = 'Z'
56 dnames(4)(1:1) = 'T'
57 myThid = 1
58 C In FORTRAN, the first variable cycles most quickly
59 DO ii = 1,MAX_STOR
60 var(ii) = 0.21
61 tvar(ii) = 0.23
62 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
75 print*, ' Calling MNC_INIT() ...'
76 CALL MNC_INIT(myThid)
77
78 print*, ' Calling MNC_FILE_CREATE() ...'
79 CALL MNC_FILE_CREATE(myThid, fname)
80
81 print*, ' Calling MNC_DIM_INIT() ...'
82 DO i = 1,ndim
83 CALL MNC_DIM_INIT(myThid,fname, dnames(i),dims(i))
84 ii = ILNBLNK(dnames(i))
85 print*, ' ... created dimension: ', dnames(i)(1:ii)
86 ENDDO
87
88 print*, ' Calling MNC_GRID_INIT() ...'
89 gname1(1:10) = 'xyzt '
90 CALL MNC_GRID_INIT(myThid,fname, gname1, ndim, dnames)
91 gname2(1:10) = 't '
92 CALL MNC_GRID_INIT(myThid,fname, gname2, 1, dnames(4))
93
94 print*, ' Calling MNC_VAR_INIT_DBL() ...'
95 vname1(1:4) = 'time'
96 units(1:19) = 'days since 1970-1-1'
97 CALL MNC_VAR_INIT_DBL(myThid,fname, gname2, vname1 )
98 vname2(1:4) = 'temp'
99 units(1:19) = 'deg C '
100 CALL MNC_VAR_INIT_DBL(myThid,fname, gname1, vname2 )
101
102 print*, ' Calling MNC_VAR_ADD_ATTR_STR() ...'
103 atname(1:9) = 'grid_type'
104 CALL MNC_VAR_ADD_ATTR_INT(myThid,fname,vname1, atname, 1, 1)
105 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
110 print*, ' Calling MNC_VAR_WRITE_DBL() ...'
111 CALL MNC_VAR_WRITE_DBL(myThid, fname, vname1, var)
112 print*, ' Calling MNC_VAR_WRITE_DBL() ...'
113 CALL MNC_VAR_WRITE_DBL(myThid, fname, vname2, var)
114
115 CALL MNC_DUMP()
116
117 print*, ' Calling MNC_FILE_CLOSE() ...'
118 CALL MNC_FILE_CLOSE(myThid, fname)
119
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
129 print*, '=== Ending Program: mnc_test_001 ==='
130
131 END
132
133 CEH3 ;;; Local Variables: ***
134 CEH3 ;;; mode:fortran ***
135 CEH3 ;;; End: ***

  ViewVC Help
Powered by ViewVC 1.1.22