!*********************************************************************** ! $Header: /home/ubuntu/mnt/e9_copy/MITgcm_contrib/ocean_inversion_project/write_netCDF/nc_util.F,v 1.1 2003/10/21 06:21:52 dimitri Exp $ !*********************************************************************** SUBROUTINE DEF_DIM(NC_ID, NAME, LEN, DIMID) IMPLICIT NONE #include "netcdf.inc" ! Arguments INTEGER NC_ID, LEN, DIMID CHARACTER*(*) NAME ! Local variables INTEGER STATUS STATUS = NF_DEF_DIM(NC_ID, NAME, LEN, DIMID) IF (STATUS .NE. NF_NOERR) THEN PRINT *, 'NetCDF error defining dimension ', NAME PRINT *, NF_STRERROR(STATUS) STOP 'Stopped' ENDIF END !*********************************************************************** SUBROUTINE DEF_REAL(NC_ID, NAME, VARID, NDIMS, DIMIDS) IMPLICIT NONE #include "netcdf.inc" ! Arguments INTEGER NC_ID, VARID, NDIMS, DIMIDS(*) CHARACTER*(*) NAME ! Local variables INTEGER STATUS STATUS = NF_DEF_VAR(NC_ID, NAME, NF_FLOAT, NDIMS, DIMIDS, VARID) IF (STATUS .NE. NF_NOERR) THEN PRINT *, 'NetCDF error defining variable ', NAME PRINT *, NF_STRERROR(STATUS) STOP 'Stopped' ENDIF END !*********************************************************************** SUBROUTINE ADD_ATT_TEXT(NC_ID, VARID, NAME, TEXT) IMPLICIT NONE #include "netcdf.inc" ! Arguments INTEGER NC_ID, VARID CHARACTER*(*) NAME, TEXT ! Local variables INTEGER STATUS ! Function ! INTEGER LEN_TRIM STATUS = NF_PUT_ATT_TEXT(NC_ID, VARID, NAME, & LEN_TRIM(TEXT), TEXT) IF (STATUS .NE. NF_NOERR) THEN PRINT *, 'NetCDF error creating ', NAME, ' attribute ', TEXT PRINT *, NF_STRERROR(STATUS) STOP 'Stopped' ENDIF END !*********************************************************************** SUBROUTINE ADD_ATT_REAL(NC_ID, VARID, NAME, VAL) IMPLICIT NONE #include "netcdf.inc" ! Arguments INTEGER NC_ID, VARID CHARACTER*(*) NAME REAL VAL ! Local variables INTEGER STATUS STATUS = NF_PUT_ATT_REAL(NC_ID, VARID, NAME, NF_FLOAT, 1, VAL) IF (STATUS .NE. NF_NOERR) THEN PRINT *, 'NetCDF error creating ', NAME, ' attribute ', VAL PRINT *, NF_STRERROR(STATUS) STOP 'Stopped' ENDIF END !*********************************************************************** SUBROUTINE PUT_REAL(NC_ID, VARID, VAL, NAME) IMPLICIT NONE #include "netcdf.inc" ! Arguments INTEGER NC_ID, VARID REAL VAL(*) CHARACTER*(*) NAME ! Local variables INTEGER STATUS STATUS = NF_PUT_VAR_REAL(NC_ID, VARID, VAL) IF (STATUS .NE. NF_NOERR) THEN PRINT *, 'NetCDF error putting ', NAME PRINT *, NF_STRERROR(STATUS) STOP 'Stopped' ENDIF END !*********************************************************************** ! FUNCTION LEN_TRIM(STRING) ! CHARACTER*(*) STRING ! INTEGER I ! ! DO I = LEN(STRING), 1, -1 ! LEN_TRIM = I ! IF (STRING(I:I) .NE. ' ') RETURN ! END DO ! END