~ubuntu-branches/ubuntu/vivid/cdftools/vivid

« back to all changes in this revision

Viewing changes to cdfinfo.f90

  • Committer: Package Import Robot
  • Author(s): Alastair McKinstry
  • Date: 2013-11-14 19:04:43 UTC
  • Revision ID: package-import@ubuntu.com-20131114190443-ymhovvnzvr5kd02l
Tags: upstream-3.0
ImportĀ upstreamĀ versionĀ 3.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
PROGRAM cdfinfo
 
2
  !!======================================================================
 
3
  !!                     ***  PROGRAM  cdfinfo  ***
 
4
  !!=====================================================================
 
5
  !!  ** Purpose : Give very basic informations for Netcdf File
 
6
  !!
 
7
  !!  ** Method  : to be improved
 
8
  !!
 
9
  !! History : 2.1  : 09/2010  : J.M. Molines : Original code
 
10
  !!           3.0  : 01/2011  : J.M. Molines : Doctor norm + Lic.
 
11
  !!----------------------------------------------------------------------
 
12
  USE cdfio 
 
13
  USE modcdfnames
 
14
  !!----------------------------------------------------------------------
 
15
  !! CDFTOOLS_3.0 , MEOM 2011
 
16
  !! $Id$
 
17
  !! Copyright (c) 2011, J.-M. Molines
 
18
  !! Software governed by the CeCILL licence (Licence/CDFTOOLSCeCILL.txt)
 
19
  !!----------------------------------------------------------------------
 
20
  IMPLICIT NONE
 
21
 
 
22
  INTEGER(KIND=4)                               :: jvar                     ! dummy loop index
 
23
  INTEGER(KIND=4)                               :: ierr                     ! working integer
 
24
  INTEGER(KIND=4)                               :: narg, iargc              ! 
 
25
  INTEGER(KIND=4)                               :: npiglo, npjglo, npk ,npt ! size of the domain
 
26
  INTEGER(KIND=4)                               :: nvars                    ! Number of variables in a file
 
27
 
 
28
  CHARACTER(LEN=256)                            :: cf_in                    ! file name
 
29
  CHARACTER(LEN=256)                            :: cv_dep                   ! depth name
 
30
  CHARACTER(LEN=256), DIMENSION(:), ALLOCATABLE :: cv_names                 ! array of var name
 
31
  
 
32
  TYPE(variable), DIMENSION(:),     ALLOCATABLE :: stypvar                  ! variable attributes
 
33
  !!----------------------------------------------------------------------
 
34
  CALL ReadCdfNames()
 
35
 
 
36
  narg= iargc()
 
37
 
 
38
  IF ( narg == 0 ) THEN
 
39
     PRINT *,' usage : cdfinfo ''model cdf file'' '
 
40
     PRINT *,'      '
 
41
     PRINT *,'     PURPOSE :'
 
42
     PRINT *,'        Gives very basic information about the file given in arguments.'
 
43
     PRINT *,'      '
 
44
     PRINT *,'     ARGUMENTS :'
 
45
     PRINT *,'        model output file in netcdf.' 
 
46
     PRINT *,'      '
 
47
     PRINT *,'     OUTPUT : '
 
48
     PRINT *,'        On standard ouput, gives the size of the domain, the depth '
 
49
     PRINT *,'        dimension name, the number of variables.'
 
50
     PRINT *,'      '
 
51
     STOP
 
52
  ENDIF
 
53
 
 
54
  CALL getarg (1, cf_in)
 
55
  IF ( chkfile(cf_in) ) STOP ! missing file
 
56
 
 
57
  npiglo = getdim (cf_in,cn_x)
 
58
  npjglo = getdim (cf_in,cn_y)
 
59
  npk    = getdim (cf_in,cn_z, cdtrue=cv_dep, kstatus=ierr)
 
60
 
 
61
  IF (ierr /= 0 ) THEN
 
62
     npk   = getdim (cf_in,'z',cdtrue=cv_dep,kstatus=ierr)
 
63
     IF (ierr /= 0 ) THEN
 
64
       npk   = getdim (cf_in,'sigma',cdtrue=cv_dep,kstatus=ierr)
 
65
        IF ( ierr /= 0 ) THEN 
 
66
          npk = getdim (cf_in,'nav_lev',cdtrue=cv_dep,kstatus=ierr)
 
67
            IF ( ierr /= 0 ) THEN 
 
68
              npk = getdim (cf_in,'levels',cdtrue=cv_dep,kstatus=ierr)
 
69
              IF ( ierr /= 0 ) THEN 
 
70
                PRINT *,' assume file with no depth'
 
71
                npk=0
 
72
              ENDIF
 
73
            ENDIF
 
74
        ENDIF
 
75
     ENDIF
 
76
  ENDIF
 
77
 
 
78
  npt    = getdim (cf_in,cn_t)
 
79
 
 
80
  PRINT *, 'npiglo =', npiglo
 
81
  PRINT *, 'npjglo =', npjglo
 
82
  PRINT *, 'npk    =', npk
 
83
  PRINT *, 'npt    =', npt
 
84
 
 
85
  PRINT *,' Depth dimension name is ', TRIM(cv_dep)
 
86
 
 
87
  nvars = getnvar(cf_in)
 
88
  PRINT *,' nvars =', nvars
 
89
 
 
90
  ALLOCATE (cv_names(nvars)  )
 
91
  ALLOCATE (stypvar(nvars)  )
 
92
 
 
93
  ! get list of variable names 
 
94
  cv_names(:)=getvarname(cf_in, nvars, stypvar)
 
95
 
 
96
  DO jvar = 1, nvars
 
97
   PRINT *, 'variable# ',jvar,' is : ',TRIM(cv_names(jvar))
 
98
  END DO
 
99
 
 
100
END PROGRAM cdfinfo