FILCHK3() and filchk3c()

Fortran version:

    LOGICAL FUNCTION FILCHK3( FNAME, 
     &                        FTYPE, NCOLS, NROWS, NLAYS, NTHIK ) 
        CHARACTER*(*), INTENT(IN   ) :: FNAME     !  file name for query
        INTEGER      , INTENT(IN   ) :: FTYPE     !  
        INTEGER      , INTENT(IN   ) :: NCOLS     !  
        INTEGER      , INTENT(IN   ) :: NROWS     !  
        INTEGER      , INTENT(IN   ) :: NLAYS     !  (or ALLAYS3 (=-1))
        INTEGER      , INTENT(IN   ) :: NTHIK     !  

C version:

filchk3c() is a C wrapper calling the Fortran FILCHK3()
int filchk3c( const char * fname ,
              const int    ftype ,
              const int    ncols ,
              const int    nrows ,
              const int    nlays ,
              const int    nthik ) ;

Summary:

Checks to see whether file FNAME has the indicated type FTYPE and appropriate dimensions NCOLS, NROWS, NLAYS, NTHIK (with checking of just those that are appropriate for each FTYPE). Layer-checking may be suppressed by setting NLAYS=ALLAYS3. Reports details of what was wrong (if anything) to the program log.

Returns .TRUE. (or 1) iff the file is already open, and has the user-supplied indicated file type and grid/array dimensions.

For Fortran-90 declarations and interface checking:

    USE M3UTILIO
    

Preconditions:

USE M3UTILIO or INCLUDE 'IODECL3.EXT' for Fortran, or #include "iodecl3.h" for C.

I/O API must already be initialized by a call to INIT3() .

FNAME must have length at most 16.

Call

OPEN3( FNAME... )
DESC3( FNAME )
prior to call. Don't tamper with FDESC3 variables between DESC3( FNAME ) and GRDCHK3( FNAME... )

See Also:

Fortran Usage:

See sample program VERTINTEGRAL for an additional usage example.

    ...
    USE M3UTILIO
    ...
    INTEGER NCOLS, NROWS, NLAYS, NTHIK
    ...
    ...
    IF ( .NOT.OPEN3( 'MYFILE', ... ) ) THEN
        !!      MYFILE could not be opened
        ...
    ELSE IF ( .NOT. DESC3( 'MYFILE' ) ) THEN
        !!    ...DESC3() failed for MYFILE
        ...
    ELSE IF ( .NOT. FILCHK3( 'MYFILE',  GRDDED3, NCOLS, NROWS, NLAYS, NTHIK ) ) THEN
        !!    Either the file type for 'MYFILE' was not GRIDDED, or 
        !!    it had unexpected dimensions (see log for more details).
        ...
    END IF
    ...
    ...

C Usage:

    ...
    #include "iodecl3.h"
    ...
    int  ncols, nrows, nlays, nthik ;
    ...
    if ( open3c( "MYFILE", 
                 IOAPI_Bdesc3 0, IOAPI_Cdesc3 cdesc 0, FSREAD3, 
                 "Myprogram" ) )
        {
            /*  MYFILE successfully opened for read-only  */
        ...
        }
    if ( ! filchk3c( "MYFILE", 
                     GRDDED3, ncols, nrows, nlays, nthik  ) )
        {
            /*  Either the file type for "MYFILE" was not GRIDDED, or 
                it had unexpected dimensions.                         */
        ...
        }
    ...


Previous: XTRACT3

Next: GRDCHK3

Up: I/O API: Public Routines

To: Models-3/EDSS I/O API: The Help Pages