Back to home page

MITgcm

 
 

    


Warning, /pkg/mnc/mnc_test_001.T is written in an unsupported language. File is not indexed.

view on githubraw file Latest commit add29e06 on 2018-01-31 20:35:05 UTC
d2129fb7fc Ed H*0001 C     Simple test program for MNC
                0002 
                0003       PROGRAM mnc_test_001
                0004 
                0005       implicit none
a27dc5c859 Ed H*0006 #include "MNC_OPTIONS.h"
d2129fb7fc Ed H*0007 #include "EEPARAMS.h"
                0008 
                0009 C     Functions
                0010       integer ILNBLNK
                0011 
                0012 C     Local Variables
376f4203f6 Ed H*0013       integer MAX_STR, MAX_NAMES, MAX_DIM, MAX_STOR
                0014       PARAMETER ( MAX_STR   =  100 )
                0015       PARAMETER ( MAX_NAMES =   10 )
                0016       PARAMETER ( MAX_DIM   =   10 )
                0017       PARAMETER ( MAX_STOR  = 1000 )
                0018       integer ndim, dims(MAX_DIM)
                0019       integer myThid, i,j,k,l,ii, n, ind, fid
d2129fb7fc Ed H*0020       character*(MAX_LEN_MBUF) msgbuf
a7ffe10af7 Ed H*0021       character*(MAX_STR) blank, fname, gname1,gname2, vname1,vname2
                0022       character*(MAX_STR) atname, atval, units
376f4203f6 Ed H*0023       character*(MAX_STR) dnames(MAX_NAMES)
907e360dab Ed H*0024       REAL*8 fillval
a7ffe10af7 Ed H*0025       REAL*8 var(MAX_STOR), tvar(MAX_STOR)
d2129fb7fc Ed H*0026 
a27dc5c859 Ed H*0027       print*, '=== Starting Program:  mnc_test_001 ==='
376f4203f6 Ed H*0028 
                0029       print*, ' Initalizing variables ...'
a27dc5c859 Ed H*0030       DO i = 1,MAX_STR
                0031         blank(i:i) = ' '
                0032       ENDDO
                0033       DO i = 1,MAX_NAMES
376f4203f6 Ed H*0034         dnames(i)(1:MAX_STR) = blank(1:MAX_STR)
a27dc5c859 Ed H*0035       ENDDO
                0036       fname(1:MAX_STR) = blank(1:MAX_STR)
a7ffe10af7 Ed H*0037       gname1(1:MAX_STR) = blank(1:MAX_STR)
                0038       gname2(1:MAX_STR) = blank(1:MAX_STR)
                0039       vname1(1:MAX_STR) = blank(1:MAX_STR)
                0040       vname2(1:MAX_STR) = blank(1:MAX_STR)
907e360dab Ed H*0041       units(1:MAX_STR) = blank(1:MAX_STR)
                0042       atname(1:MAX_STR) = blank(1:MAX_STR)
                0043       atval(1:MAX_STR) = blank(1:MAX_STR)
a27dc5c859 Ed H*0044       fname(1:12) = 'test_001.nc '
376f4203f6 Ed H*0045       ndim = 4
                0046       dims(1) =  7
                0047       dims(2) =  4
                0048       dims(3) =  2
251b9a88c9 Ed H*0049       dims(4) = -1
376f4203f6 Ed H*0050       dnames(1)(1:1) = 'X'
                0051       dnames(2)(1:1) = 'Y'
                0052       dnames(3)(1:1) = 'Z'
251b9a88c9 Ed H*0053       dnames(4)(1:1) = 'T'
a27dc5c859 Ed H*0054       myThid = 1
376f4203f6 Ed H*0055 C     In FORTRAN, the first variable cycles most quickly
                0056       DO ii = 1,MAX_STOR
                0057         var(ii) = 0.21
a7ffe10af7 Ed H*0058         tvar(ii) = 0.23
376f4203f6 Ed H*0059       ENDDO
                0060       ii = 0
                0061       DO l = 1,dims(3)
                0062         DO k = 1,dims(3)
                0063           DO j = 1,dims(2)
                0064             DO i = 1,dims(1)
                0065               ii = ii + 1
                0066               var(ii) = ((i*100 + j)*100 + k)*100 + l
                0067             ENDDO
                0068           ENDDO
                0069         ENDDO
                0070       ENDDO
                0071 
a27dc5c859 Ed H*0072       print*, ' Calling MNC_INIT() ...'
                0073       CALL MNC_INIT(myThid)
                0074 
dad4143247 Ed H*0075       print*, ' Calling MNC_FILE_CREATE() ...'
3f2ea2a4ed Ed H*0076       CALL MNC_FILE_CREATE(fname, myThid)
dad4143247 Ed H*0077 
a27dc5c859 Ed H*0078       print*, ' Calling MNC_DIM_INIT() ...'
376f4203f6 Ed H*0079       DO i = 1,ndim
3f2ea2a4ed Ed H*0080         CALL MNC_DIM_INIT(fname, dnames(i),dims(i), myThid)
dad4143247 Ed H*0081         ii = ILNBLNK(dnames(i))
                0082         print*, '   ... created dimension: ', dnames(i)(1:ii)
376f4203f6 Ed H*0083       ENDDO
a27dc5c859 Ed H*0084 
                0085       print*, ' Calling MNC_GRID_INIT() ...'
a7ffe10af7 Ed H*0086       gname1(1:10) = 'xyzt      '
3f2ea2a4ed Ed H*0087       CALL MNC_GRID_INIT(fname, gname1, ndim, dnames, myThid)
a7ffe10af7 Ed H*0088       gname2(1:10) = 't         '
3f2ea2a4ed Ed H*0089       CALL MNC_GRID_INIT(fname, gname2, 1, dnames(4), myThid)
a27dc5c859 Ed H*0090 
907e360dab Ed H*0091       print*, ' Calling MNC_VAR_INIT_DBL() ...'
a7ffe10af7 Ed H*0092       vname1(1:4) = 'time'
                0093       units(1:19) = 'days since 1970-1-1'
3f2ea2a4ed Ed H*0094       CALL MNC_VAR_INIT_DBL(fname, gname2, vname1, myThid)
a7ffe10af7 Ed H*0095       vname2(1:4) = 'temp'
fec5a2f448 Ed H*0096       units(1:19) = 'deg C              '
3f2ea2a4ed Ed H*0097       CALL MNC_VAR_INIT_DBL(fname, gname1, vname2, myThid)
907e360dab Ed H*0098 
                0099       print*, ' Calling MNC_VAR_ADD_ATTR_STR() ...'
fec5a2f448 Ed H*0100       atname(1:9) = 'grid_type'
3f2ea2a4ed Ed H*0101       CALL MNC_VAR_ADD_ATTR_INT(fname,vname1, atname, 1, 1, myThid)
a7ffe10af7 Ed H*0102       atname(1:11) = 'valid_range'
                0103       tvar(1) = -23.5
                0104       tvar(2) = 176.75
3f2ea2a4ed Ed H*0105       CALL MNC_VAR_ADD_ATTR_DBL(fname,vname2, atname, 2, tvar, myThid)
907e360dab Ed H*0106 
376f4203f6 Ed H*0107       print*, ' Calling MNC_VAR_WRITE_DBL() ...'
3f2ea2a4ed Ed H*0108       CALL MNC_VAR_WRITE_DBL(fname, vname1, var, myThid)
376f4203f6 Ed H*0109       print*, ' Calling MNC_VAR_WRITE_DBL() ...'
3f2ea2a4ed Ed H*0110       CALL MNC_VAR_WRITE_DBL(fname, vname2, var, myThid)
a7ffe10af7 Ed H*0111 
3f2ea2a4ed Ed H*0112       CALL MNC_DUMP(myThid)
376f4203f6 Ed H*0113 
a27dc5c859 Ed H*0114       print*, ' Calling MNC_FILE_CLOSE() ...'
3f2ea2a4ed Ed H*0115       CALL MNC_FILE_CLOSE(fname, myThid)
a27dc5c859 Ed H*0116 
3f2ea2a4ed Ed H*0117       CALL MNC_DUMP(myThid)
75987013ac Ed H*0118 
                0119       print*, '=========================================='
                0120 
                0121       print*, ' Calling MNC_FILE_READALL() ...'
3f2ea2a4ed Ed H*0122       CALL MNC_FILE_READALL(fname, myThid)
75987013ac Ed H*0123 
3f2ea2a4ed Ed H*0124       CALL MNC_DUMP(myThid)
75987013ac Ed H*0125 
a27dc5c859 Ed H*0126       print*, '=== Ending Program:  mnc_test_001 ==='
d2129fb7fc Ed H*0127 
                0128       END
                0129 
                0130 CEH3 ;;; Local Variables: ***
                0131 CEH3 ;;; mode:fortran ***
                0132 CEH3 ;;; End: ***