LCOV - code coverage report
Current view: | top level - hemco/HEMCO/src/Shared/NcdfUtil - hco_m_netcdf_io_define.F90 (source / functions) |  |  | Hit | Total | Coverage
Test: | coverage.info |  | Lines: | 0 | 118 | 0.0 %
Date: | 2024-12-17 17:57:11 |  | Functions: | 0 | 19 | 0.0 %

              Line data    Source code
           1             : !------------------------------------------------------------------------------
           2             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
           3             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
           4             : !------------------------------------------------------------------------------
           5             : !BOP
           6             : !
           7             : ! !MODULE: HCO_m_netcdf_io_define.F90
           8             : !
           9             : ! !INTERFACE:
          10             : !
          11             : MODULE HCO_m_netcdf_io_define
          12             : !
          13             : ! !USES:
          14             : !
          15             :   IMPLICIT NONE
          16             : !
          17             : ! !PUBLIC MEMBER FUNCTIONS:
          18             : !
          19             :   PUBLIC :: NcDef_Dimension
          20             :   PUBLIC :: NcDef_Variable
          21             :   PUBLIC :: NcSetFill
          22             :   PUBLIC :: NcEnd_Def
          23             :   PUBLIC :: NcBegin_Def
          24             :
          25             :   PUBLIC :: NcDef_glob_attributes
          26             :   INTERFACE NcDef_glob_attributes
          27             :      MODULE PROCEDURE NcDef_glob_attributes_c
          28             :      MODULE PROCEDURE NcDef_glob_attributes_i
          29             :      MODULE PROCEDURE NcDef_glob_attributes_r4
          30             :      MODULE PROCEDURE NcDef_glob_attributes_r8
          31             :      MODULE PROCEDURE NcDef_glob_attributes_i_arr
          32             :      MODULE PROCEDURE NcDef_glob_attributes_r4_arr
          33             :      MODULE PROCEDURE NcDef_glob_attributes_r8_arr
          34             :   END INTERFACE NcDef_glob_attributes
          35             :
          36             :   PUBLIC :: NcDef_var_attributes
          37             :   INTERFACE NcDef_var_attributes
          38             :      MODULE PROCEDURE NcDef_var_attributes_c
          39             :      MODULE PROCEDURE NcDef_var_attributes_i
          40             :      MODULE PROCEDURE NcDef_var_attributes_r4
          41             :      MODULE PROCEDURE NcDef_var_attributes_r8
          42             :      MODULE PROCEDURE NcDef_var_attributes_i_arr
          43             :      MODULE PROCEDURE NcDef_var_attributes_r4_arr
          44             :      MODULE PROCEDURE NcDef_var_attributes_r8_arr
          45             :   END INTERFACE NcDef_var_attributes
          46             : !
          47             : ! !PRIVATE MEMBER FUNCTIONS:
          48             : !
          49             :   PRIVATE :: NcDef_glob_attributes_c
          50             :   PRIVATE :: NcDef_glob_attributes_i
          51             :   PRIVATE :: NcDef_glob_attributes_r4
          52             :   PRIVATE :: NcDef_glob_attributes_r8
          53             :   PRIVATE :: NcDef_glob_attributes_i_arr
          54             :   PRIVATE :: NcDef_glob_attributes_r4_arr
          55             :   PRIVATE :: NcDef_glob_attributes_r8_arr
          56             :   PRIVATE :: NcDef_var_attributes_c
          57             :   PRIVATE :: NcDef_var_attributes_i
          58             :   PRIVATE :: NcDef_var_attributes_r4
          59             :   PRIVATE :: NcDef_var_attributes_r8
          60             :   PRIVATE :: NcDef_var_attributes_i_arr
          61             :   PRIVATE :: NcDef_var_attributes_r4_arr
          62             :   PRIVATE :: NcDef_var_attributes_r8_arr
          63             : !
          64             : ! !DESCRIPTION: Provides netCDF utility routines to define dimensions,
          65             : !  variables and attributes.
          66             : !\\
          67             : !\\
          68             : ! !AUTHOR:
          69             : !  Jules Kouatchou
          70             : !
          71             : ! !REVISION HISTORY:
          72             : !  See https://github.com/geoschem/hemco for complete history
          73             : !EOP
          74             : !------------------------------------------------------------------------------
          75             : !BOC
          76             : CONTAINS
          77             : !EOC
          78             : !------------------------------------------------------------------------------
          79             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
          80             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
          81             : !------------------------------------------------------------------------------
          82             : !BOP
          83             : !
          84             : ! !IROUTINE: NcDef_dimension
          85             : !
          86             : ! !INTERFACE:
          87             : !
          88           0 :   SUBROUTINE NcDef_dimension(ncid,name,len,id,unlimited)
          89             : !
          90             : ! !USES:
          91             : !
          92             :     USE netCDF
          93             :     USE m_do_err_out
          94             : !
          95             : ! !INPUT PARAMETERS:
          96             : !!  ncid  : netCDF file id
          97             : !!  name  : dimension name
          98             : !!  len   : dimension number
          99             :     CHARACTER (LEN=*), INTENT(IN)  :: name
         100             :     INTEGER,           INTENT(IN)  :: ncid, len
         101             :     LOGICAL, OPTIONAL, INTENT(IN)  :: unlimited
         102             : !
         103             : ! !OUTPUT PARAMETERS:
         104             : !!  id    : dimension id
         105             :     INTEGER,           INTENT(OUT) :: id
         106             :
         107             :     INTEGER  :: len0
         108             : !
         109             : ! !DESCRIPTION: Defines dimension.
         110             : !\\
         111             : !\\
         112             : ! !AUTHOR:
         113             : !  Jules Kouatchou and Maharaj Bhat
         114             : !
         115             : ! !REVISION HISTORY:
         116             : !  See https://github.com/geoschem/hemco for complete history
         117             : !EOP
         118             : !------------------------------------------------------------------------------
         119             : !BOC
         120             : !
         121             : ! !LOCAL VARIABLES:
         122             :     CHARACTER (len=512) :: err_msg
         123             :     INTEGER :: ierr
         124             :
         125             :     ! If unlimited variable is present and true,
         126             :     ! then make this dimension unlimited
         127           0 :     len0 = len
         128           0 :     if (present(unlimited)) then
         129           0 :        if (unlimited) then
         130           0 :           len0 = NF90_UNLIMITED
         131             :        endif
         132             :     endif
         133             :
         134           0 :     ierr = NF90_Def_Dim(ncid, name, len0, id)
         135             :
         136           0 :     IF (ierr.ne.NF90_NOERR) then
         137           0 :        err_msg = 'NF90_Def_Dim: can not define dimension : '// Trim (name)
         138           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         139             :     END IF
         140             :
         141           0 :   END SUBROUTINE NcDef_dimension
         142             : !EOC
         143             : !------------------------------------------------------------------------------
         144             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         145             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         146             : !------------------------------------------------------------------------------
         147             : !BOP
         148             : !
         149             : ! !IROUTINE: NcDef_variable
         150             : !
         151             : ! !INTERFACE:
         152             : !
         153           0 :   SUBROUTINE NcDef_variable(ncid, name, xtype, ndims, dims, var_id, compress)
         154             : !
         155             : ! !USES:
         156             : !
         157             :     USE netCDF
         158             :     USE m_do_err_out
         159             : !
         160             : ! !INPUT PARAMETERS:
         161             : !
         162             : !!  ncid   : netCDF file id
         163             : !!  name   : name of the variable
         164             : !!  type   : type of the variable
         165             : !!           (NF90_FLOAT,  NF90_CHAR, NF90_INT,
         166             : !!            NF90_DOUBLE, NF90_BYTE, NF90_SHORT)
         167             : !!  ndims  : number of dimensions of the variable
         168             : !!  dims   : netCDF dimension id of the variable
         169             :     CHARACTER (LEN=*), INTENT(IN)  :: name
         170             :     INTEGER,           INTENT(IN)  :: ncid, ndims
         171             :     INTEGER,           INTENT(IN)  :: dims(ndims)
         172             :     INTEGER,           INTENT(IN)  :: xtype
         173             :     LOGICAL, OPTIONAL, INTENT(IN)  :: compress
         174             : !
         175             : ! !OUTPUT PARAMETERS:
         176             : !
         177             : !!  varid  : netCDF variable id returned by NF90_DEF_VAR
         178             :     INTEGER,           INTENT(OUT) :: var_id
         179             : !
         180             : ! !DESCRIPTION: Defines a netCDF variable.
         181             : !\\
         182             : !\\
         183             : ! !AUTHOR:
         184             : !  Jules Kouatchou and Maharaj Bhat
         185             : !
         186             : ! !REVISION HISTORY:
         187             : !  See https://github.com/geoschem/hemco for complete history
         188             : !EOP
         189             : !------------------------------------------------------------------------------
         190             : !BOC
         191             : !
         192             : ! !LOCAL VARIABLES:
         193             :     character(len=512) :: err_msg
         194             :     integer            :: ierr
         195             :     logical            :: doStop
         196             :
         197             : #ifdef NC_HAS_COMPRESSION
         198             :     !=====================================================================
         199             :     ! Create a compressed (deflated) netCDF variable
         200             :     !
         201             :     ! NOTE: We need to block this out with an #ifdef because some
         202             :     ! netCDF installations might lack the deflation capability,
         203             :     ! which would cause a compile-time error. (bmy, 3/1/17)
         204             :     !========================================================================
         205             :     IF ( PRESENT( Compress ) ) then
         206             :
         207             :        !------------------------------------------------------------------
         208             :        ! If COMPRESS is passed as an optional argument, and is TRUE,
         209             :        ! then define the variable with deflate_level=1.  Higher values
         210             :        ! of deflate_level yield minimal additiional benefit.
         211             :        !
         212             :        ! ALSO NOTE: Newer versions of netCDF balk when you try to compress
         213             :        ! a scalar variable.  This generates an annoying warning message.
         214             :        ! To avoid this, only compress array variables. (bmy, 11/30/20)
         215             :        !-------------------------------------------------------------------
         216             :        IF ( Compress .and. ndims > 0 ) THEN
         217             :
         218             :           ! Create deflated variable
         219             :           ierr = NF90_Def_Var( ncid, name, xtype, dims, var_id,              &
         220             :                                shuffle=.TRUE., deflate_level=1 )
         221             :
         222             :           ! Check for errors.
         223             :           ! No message will be generated if the error is simply that the
         224             :           ! file is not netCDF-4 (as netCDF-3 doesn't support compression)
         225             :           IF ( (ierr.ne.NF90_NOERR) .and. (ierr.ne.NF90_ENOTNC4)) THEN
         226             :
         227             :              ! Errors enabling compression will not halt the program
         228             :              doStop = .False.
         229             :
         230             :              ! Print error
         231             :              err_msg = 'NF90_Def_Var: can not create compressed variable : '//&
         232             :                         Trim(name)
         233             :              CALL Do_Err_Out (err_msg, doStop, 0, 0, 0, 0, 0.0d0, 0.0d0)
         234             :           END IF
         235             :
         236             :           ! Return successfully
         237             :           RETURN
         238             :        ENDIF
         239             :     ENDIF
         240             : #endif
         241             :
         242             :     !========================================================================
         243             :     ! Create an uncompressed netCDF variable if:
         244             :     ! (1) COMPRESS is not passed as an optional argument
         245             :     ! (2) COMPRESS is passed as an optional argument but is FALSE
         246             :     ! (3) The variable is a scalar (ndims == 0)
         247             :     !========================================================================
         248           0 :     ierr = NF90_Def_Var( ncid, name, xtype, dims, var_id )
         249           0 :     IF ( ierr /= NF90_NOERR ) THEN
         250             :        err_msg = 'NF90_Def_Var_Deflate: can not create variable : '// &
         251           0 :             Trim (name)
         252           0 :        CALL Do_Err_Out (err_msg, doStop, 0, 0, 0, 0, 0.0d0, 0.0d0)
         253             :     ENDIF
         254             :
         255           0 :   END SUBROUTINE NcDef_variable
         256             : !EOC
         257             : !------------------------------------------------------------------------------
         258             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         259             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         260             : !------------------------------------------------------------------------------
         261             : !BOP
         262             : !
         263             : ! !IROUTINE: NcDef_var_attributes
         264             : !
         265             : ! !INTERFACE:
         266             : !
         267           0 :   SUBROUTINE NcDef_var_attributes_c(ncid, var_id, att_name, att_val)
         268             : !
         269             : ! !USES:
         270             : !
         271             :     USE netCDF
         272             :     USE m_do_err_out
         273             : !
         274             : ! !INPUT PARAMETERS:
         275             : !!  ncid    : netCDF file id
         276             : !!  var_id  : netCDF variable id
         277             : !!  att_name: attribute name
         278             : !!  att_val : attribute value
         279             :     CHARACTER (LEN=*), INTENT(IN) :: att_name, att_val
         280             :     INTEGER,           INTENT(IN) :: ncid,     var_id
         281             : !
         282             : ! !DESCRIPTION: Defines a netCDF variable attribute of type: CHARACTER.
         283             : !\\
         284             : !\\
         285             : ! !AUTHOR:
         286             : !  Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat)
         287             : !
         288             : ! !REVISION HISTORY:
         289             : !  See https://github.com/geoschem/hemco for complete history
         290             : !EOP
         291             : !------------------------------------------------------------------------------
         292             : !BOC
         293             : !
         294             : ! !LOCAL VARIABLES:
         295             :     CHARACTER (LEN=512) :: err_msg
         296             :     INTEGER             :: ierr
         297             : !
         298           0 :     ierr = NF90_Put_Att(ncid, var_id, att_name, att_val)
         299             :
         300           0 :     IF (ierr /= NF90_NOERR) THEN
         301             :        err_msg = 'NcDef_var_attributes_c: can not define attribute : ' // &
         302           0 :             TRIM (att_name)
         303           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         304             :     END IF
         305             :
         306           0 :   END SUBROUTINE NcDef_var_attributes_c
         307             : !EOC
         308             : !------------------------------------------------------------------------------
         309             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         310             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         311             : !------------------------------------------------------------------------------
         312             : !BOP
         313             : !
         314             : ! !IROUTINE: NcDef_var_attributes_i
         315             : !
         316             : ! !INTERFACE:
         317             : !
         318           0 :   SUBROUTINE NcDef_var_attributes_i(ncid, var_id, att_name, att_val)
         319             : !
         320             : ! !USES:
         321             : !
         322             :     USE netCDF
         323             :     USE m_do_err_out
         324             : !
         325             :     IMPLICIT NONE
         326             :     INCLUDE 'netcdf.inc'
         327             : !
         328             : ! !INPUT PARAMETERS:
         329             : !!  ncid    : netCDF file id
         330             : !!  var_id  : netCDF variable id
         331             : !!  att_name: attribute name
         332             : !!  att_val : attribute value
         333             :     INTEGER,           INTENT(IN) :: att_val
         334             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         335             :     INTEGER,           INTENT(IN) :: ncid, var_id
         336             : !
         337             : ! !DESCRIPTION: Defines a netCDF variable attribute of type: INTEGER.
         338             : !\\
         339             : !\\
         340             : ! !AUTHOR:
         341             : !  Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat)
         342             : !
         343             : ! !REVISION HISTORY:
         344             : !  26 Sep 2013 - R. Yantosca - Initial version
         345             : !  See https://github.com/geoschem/hemco for complete history
         346             : !EOP
         347             : !------------------------------------------------------------------------------
         348             : !BOC
         349             : !
         350             : ! !LOCAL VARIABLES:
         351             :     character (len=512) :: err_msg
         352             :     integer             :: mylen, ierr
         353             : !
         354           0 :     ierr  = NF90_Put_Att( ncid, var_id, att_name, att_val )
         355             :
         356           0 :     IF (ierr.ne.NF90_NOERR) THEN
         357             :        err_msg = 'NcDef_var_attributes_i: can not define attribute : ' // &
         358           0 :             TRIM (att_name)
         359           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         360             :     END IF
         361             :
         362           0 :   END SUBROUTINE NcDef_var_attributes_i
         363             : !EOC
         364             : !------------------------------------------------------------------------------
         365             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         366             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         367             : !------------------------------------------------------------------------------
         368             : !BOP
         369             : !
         370             : ! !IROUTINE: NcDef_var_attributes_r4
         371             : !
         372             : ! !INTERFACE:
         373             : !
         374           0 :   SUBROUTINE NcDef_var_attributes_r4(ncid, var_id, att_name, att_val)
         375             : !
         376             : ! !USES:
         377             : !
         378             :     USE netCDF
         379             :     USE m_do_err_out
         380             : !
         381             : ! !INPUT PARAMETERS:
         382             : !!  ncid    : netCDF file id
         383             : !!  var_id  : netCDF variable id
         384             : !!  att_name: attribute name
         385             : !!  att_val : attribute value
         386             :     REAL*4,            INTENT(IN) :: att_val
         387             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         388             :     INTEGER,           INTENT(IN) :: ncid, var_id
         389             : !
         390             : ! !DESCRIPTION: Defines a netCDF variable attribute of type: REAL*4.
         391             : !\\
         392             : !\\
         393             : ! !AUTHOR:
         394             : !  Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat)
         395             : !
         396             : ! !REVISION HISTORY:
         397             : !  26 Sep 2013 - R. Yantosca - Initial version
         398             : !  See https://github.com/geoschem/hemco for complete history
         399             : !EOP
         400             : !------------------------------------------------------------------------------
         401             : !BOC
         402             : !
         403             : ! !LOCAL VARIABLES:
         404             :     CHARACTER (LEN=512) :: err_msg
         405             :     INTEGER             :: ierr
         406             : !
         407           0 :     ierr  = NF90_Put_Att( ncid, var_id, att_name, att_val )
         408             :
         409           0 :     IF (ierr.ne.NF90_NOERR) THEN
         410             :        err_msg = 'NcDef_var_attributes_r4: can not define attribute : ' // &
         411           0 :             TRIM (att_name)
         412           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         413             :     END IF
         414             :
         415           0 :   END SUBROUTINE NcDef_var_attributes_r4
         416             : !EOC
         417             : !------------------------------------------------------------------------------
         418             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         419             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         420             : !------------------------------------------------------------------------------
         421             : !BOP
         422             : !
         423             : ! !IROUTINE: NcDef_var_attributes_r8
         424             : !
         425             : ! !INTERFACE:
         426             : !
         427           0 :   SUBROUTINE NcDef_var_attributes_r8(ncid, var_id, att_name, att_val)
         428             : !
         429             : ! !USES:
         430             : !
         431             :     USE netCDF
         432             :     USE m_do_err_out
         433             : !
         434             : ! !INPUT PARAMETERS:
         435             : !!  ncid    : netCDF file id
         436             : !!  var_id  : netCDF variable id
         437             : !!  att_name: attribute name
         438             : !!  att_val : attribute value
         439             :     REAL*8,            INTENT(IN) :: att_val
         440             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         441             :     INTEGER,           INTENT(IN) :: ncid, var_id
         442             : !
         443             : ! !DESCRIPTION: Defines a netCDF variable attribute of type: REAL*4.
         444             : !\\
         445             : !\\
         446             : ! !AUTHOR:
         447             : !  Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat)
         448             : !
         449             : ! !REVISION HISTORY:
         450             : !  20 Sep 2013 - R. Yantosca - Initial version
         451             : !  See https://github.com/geoschem/hemco for complete history
         452             : !EOP
         453             : !------------------------------------------------------------------------------
         454             : !BOC
         455             : !
         456             : ! !LOCAL VARIABLES:
         457             :     CHARACTER (LEN=512) :: err_msg
         458             :     INTEGER             :: ierr
         459             : !
         460           0 :     ierr  = NF90_Put_Att( ncid, var_id, att_name, att_val )
         461             :
         462           0 :     IF (ierr.ne.NF90_NOERR) THEN
         463             :        err_msg = 'NcDef_var_attributes_r8: can not define attribute : ' // &
         464           0 :             TRIM (att_name)
         465           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         466             :     END IF
         467             :
         468           0 :   END SUBROUTINE NcDef_var_attributes_r8
         469             : !EOC
         470             : !------------------------------------------------------------------------------
         471             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         472             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         473             : !------------------------------------------------------------------------------
         474             : !BOP
         475             : !
         476             : ! !IROUTINE: NcDef_var_attributes_i_arr
         477             : !
         478             : ! !INTERFACE:
         479             : !
         480           0 :   SUBROUTINE NcDef_var_attributes_i_arr(ncid, var_id, att_name, att_val)
         481             : !
         482             : ! !USES:
         483             : !
         484             :     USE netCDF
         485             :     USE m_do_err_out
         486             : !
         487             : ! !INPUT PARAMETERS:
         488             : !!  ncid    : netCDF file id
         489             : !!  var_id  : netCDF variable id
         490             : !!  att_name: attribute name
         491             : !!  att_val : attribute value
         492             :     INTEGER,           INTENT(IN) :: att_val(:)
         493             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         494             :     INTEGER,           INTENT(IN) :: ncid, var_id
         495             : !
         496             : ! !DESCRIPTION: Defines a netCDF variable attribute of type: INTEGER vector.
         497             : !\\
         498             : !\\
         499             : ! !AUTHOR:
         500             : !  Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat)
         501             : !
         502             : ! !REVISION HISTORY:
         503             : !  26 Sep 2013 - R. Yantosca - Initial version
         504             : !  See https://github.com/geoschem/hemco for complete history
         505             : !EOP
         506             : !------------------------------------------------------------------------------
         507             : !BOC
         508             : !
         509             : ! !LOCAL VARIABLES:
         510             :     CHARACTER (LEN=512) :: err_msg
         511             :     INTEGER             :: ierr
         512             : !
         513           0 :     ierr  = NF90_Put_Att( ncid, var_id, att_name, att_val )
         514             :
         515           0 :     iF (ierr.ne.NF90_NOERR) THEN
         516             :        err_msg = 'NcDef_var_attributes_i_arr: can not define attribute : ' &
         517           0 :             // TRIM (att_name)
         518           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         519             :     END IF
         520             :
         521           0 :   END SUBROUTINE NcDef_var_attributes_i_arr
         522             : !EOC
         523             : !------------------------------------------------------------------------------
         524             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         525             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         526             : !------------------------------------------------------------------------------
         527             : !BOP
         528             : !
         529             : ! !IROUTINE: NcDef_var_attributes_r4_arr
         530             : !
         531             : ! !INTERFACE:
         532             : !
         533           0 :   SUBROUTINE NcDef_var_attributes_r4_arr(ncid, var_id, att_name, att_val)
         534             : !
         535             : ! !USES:
         536             : !
         537             :     USE netCDF
         538             :     USE m_do_err_out
         539             : !
         540             : ! !INPUT PARAMETERS:
         541             : !!  ncid    : netCDF file id
         542             : !!  var_id  : netCDF variable id
         543             : !!  att_name: attribute name
         544             : !!  att_val : attribute value
         545             :     REAL*4,            INTENT(IN) :: att_val(:)
         546             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         547             :     INTEGER,           INTENT(IN) :: ncid, var_id
         548             : !
         549             : ! !DESCRIPTION: Defines a netCDF variable attribute of type: REAL*4 vector
         550             : !\\
         551             : !\\
         552             : ! !AUTHOR:
         553             : !  Bob Yantosca (based on code by Jules Kouatchou and Maharaj Bhat)
         554             : !
         555             : ! !REVISION HISTORY:
         556             : !  26 Sep 2013 - R. Yantosca - Initial version
         557             : !  See https://github.com/geoschem/hemco for complete history
         558             : !EOP
         559             : !------------------------------------------------------------------------------
         560             : !BOC
         561             : !
         562             : ! !LOCAL VARIABLES:
         563             :     CHARACTER (LEN=512) :: err_msg
         564             :     INTEGER             :: ierr
         565             : !
         566           0 :     ierr  = NF90_Put_Att( ncid, var_id, att_name, att_val )
         567             :
         568           0 :     IF (ierr.ne.NF90_NOERR) THEN
         569             :        err_msg = 'NcDef_var_attributes_r4_arr: can not define attribute : ' &
         570           0 :                     // TRIM (att_name)
         571           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         572             :     END IF
         573             :
         574           0 :   END SUBROUTINE NcDef_var_attributes_r4_arr
         575             : !EOC
         576             : !------------------------------------------------------------------------------
         577             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         578             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         579             : !------------------------------------------------------------------------------
         580             : !BOP
         581             : !
         582             : ! !IROUTINE: NcDef_var_attributes_r8_arr
         583             : !
         584             : ! !INTERFACE:
         585             : !
         586           0 :   SUBROUTINE NcDef_var_attributes_r8_arr(ncid, var_id, att_name, att_val)
         587             : !
         588             : ! !USES:
         589             : !
         590             :     USE netCDF
         591             :     USE m_do_err_out
         592             : !
         593             : ! !INPUT PARAMETERS:
         594             : !!    ncid    : netCDF file id
         595             : !!    var_id  : netCDF variable id
         596             : !!    att_name: attribute name
         597             : !!    att_val : attribute value
         598             :     REAL*8,            INTENT(IN) :: att_val(:)
         599             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         600             :     INTEGER,           INTENT(IN) :: ncid, var_id
         601             : !
         602             : ! !DESCRIPTION: Defines a netCDF variable attribute of type: REAL*8 vector
         603             : !\\
         604             : !\\
         605             : ! !AUTHOR:
         606             : !  Jules Kouatchou and Maharaj Bhat
         607             : !
         608             : ! !REVISION HISTORY:
         609             : !  20 Sep 2013 - R. Yantosca - Initial version
         610             : !  See https://github.com/geoschem/hemco for complete history
         611             : !EOP
         612             : !------------------------------------------------------------------------------
         613             : !BOC
         614             : !
         615             : ! !LOCAL VARIABLES:
         616             :     character (len=512) :: err_msg
         617             :     integer             :: ierr
         618             : !
         619           0 :     ierr  = NF90_Put_Att( ncid, var_id, att_name, att_val )
         620             :
         621           0 :     IF (ierr.ne.NF90_NOERR) THEN
         622             :        err_msg = 'NcDef_var_attributes_r4_arr: can not define attribute : '&
         623           0 :                      // Trim (att_name)
         624           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         625             :     END IF
         626             :
         627           0 :   END SUBROUTINE NcDef_var_attributes_r8_arr
         628             : !EOC
         629             : !------------------------------------------------------------------------------
         630             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         631             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         632             : !------------------------------------------------------------------------------
         633             : !BOP
         634             : !
         635             : ! !IROUTINE: NcDef_glob_attributes_c
         636             : !
         637             : ! !INTERFACE:
         638             : !
         639           0 :   SUBROUTINE NcDef_glob_attributes_c(ncid, att_name, att_val)
         640             : !
         641             : ! !USES:
         642             : !
         643             :     USE netCDF
         644             :     USE m_do_err_out
         645             : !
         646             : ! !INPUT PARAMETERS:
         647             : !!  ncid    : netCDF file id
         648             : !!  att_name: attribute name
         649             : !!  att_val : attribute value
         650             : !
         651             :     CHARACTER (LEN=*), INTENT(IN) :: att_val
         652             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         653             :     INTEGER,           INTENT(IN) :: ncid
         654             : !
         655             : ! !DESCRIPTION: Defines global attributes of type: CHARACTER
         656             : !\\
         657             : !\\
         658             : ! !AUTHOR:
         659             : !  Bob Yantosca( based on code by Jules Kouatchou)
         660             : !
         661             : ! !REVISION HISTORY:
         662             : !  26 Sep 2013 - R. Yantosca - Initial version
         663             : !  See https://github.com/geoschem/hemco for complete history
         664             : !EOP
         665             : !-------------------------------------------------------------------------
         666             : !BOC
         667             : !
         668             : ! !LOCAL VARIABLES:
         669             :     CHARACTER (LEN=512) :: err_msg
         670             :     INTEGER             :: ierr
         671             : !
         672           0 :     ierr = NF90_Put_Att(ncid, NF90_GLOBAL, att_name, att_val)
         673             :
         674           0 :     IF (ierr.ne.NF90_NOERR) THEN
         675             :        err_msg = 'NcDef_glob_attributes_c: can not define attribute : ' // &
         676           0 :             TRIM (att_name)
         677           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         678             :     END IF
         679             :
         680           0 :   END SUBROUTINE NcDef_glob_attributes_c
         681             : !EOC
         682             : !------------------------------------------------------------------------------
         683             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         684             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         685             : !------------------------------------------------------------------------------
         686             : !BOP
         687             : !
         688             : ! !IROUTINE: NcDef_glob_attributes_i
         689             : !
         690             : ! !INTERFACE:
         691             : !
         692           0 :   SUBROUTINE NcDef_glob_attributes_i(ncid, att_name, att_val)
         693             : !
         694             : ! !USES:
         695             : !
         696             :     USE netCDF
         697             :     USE m_do_err_out
         698             : !
         699             : ! !INPUT PARAMETERS:
         700             : !!    ncid    : netCDF file id
         701             : !!    att_name: attribute name
         702             : !!    att_val : attribute value
         703             : !
         704             :     INTEGER,           INTENT(IN) :: att_val
         705             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         706             :     INTEGER,           INTENT(IN) :: NCID
         707             : !
         708             : ! !DESCRIPTION: Defines global attributes of type: INTEGER
         709             : !\\
         710             : !\\
         711             : ! !AUTHOR:
         712             : !  Bob Yantosca( based on code by Jules Kouatchou)
         713             : !
         714             : ! !REVISION HISTORY:
         715             : !  26 Sep 2013 - R. Yantosca - Initial version
         716             : !  See https://github.com/geoschem/hemco for complete history
         717             : !EOP
         718             : !-------------------------------------------------------------------------
         719             : !BOC
         720             : !
         721             : ! !LOCAL VARIABLES:
         722             :     CHARACTER (LEN=512) :: err_msg
         723             :     INTEGER             :: ierr
         724             : !
         725           0 :     ierr  = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val )
         726             :
         727           0 :     IF (ierr.ne.NF90_NOERR) THEN
         728             :        err_msg = 'NcDef_glob_attributes_i: can not define attribute : ' // &
         729           0 :             TRIM (att_name)
         730           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         731             :     END IF
         732             :
         733           0 :   END SUBROUTINE NcDef_glob_attributes_i
         734             : !EOC
         735             : !------------------------------------------------------------------------------
         736             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         737             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         738             : !------------------------------------------------------------------------------
         739             : !BOP
         740             : !
         741             : ! !IROUTINE: NcDef_glob_attributes_r4
         742             : !
         743             : ! !INTERFACE:
         744             : !
         745           0 :   SUBROUTINE NcDef_glob_attributes_r4(ncid, att_name, att_val)
         746             : !
         747             : ! !USES:
         748             : !
         749             :     USE netCDF
         750             :     USE m_do_err_out
         751             : !
         752             : ! !INPUT PARAMETERS:
         753             : !!  ncid    : netCDF file id
         754             : !!  att_name: attribute name
         755             : !!  att_val : attribute value
         756             : !
         757             :     REAL*4,            INTENT(IN) :: att_val
         758             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         759             :     INTEGER,           INTENT(IN) :: ncid
         760             : !
         761             : ! !DESCRIPTION: Defines global attributes of type: REAL*4
         762             : !\\
         763             : !\\
         764             : ! !AUTHOR:
         765             : !  Bob Yantosca( based on code by Jules Kouatchou)
         766             : !
         767             : ! !REVISION HISTORY:
         768             : !  26 Sep 2013 - R. Yantosca - Initial version
         769             : !  See https://github.com/geoschem/hemco for complete history
         770             : !EOP
         771             : !-------------------------------------------------------------------------
         772             : !BOC
         773             : !
         774             : ! !LOCAL VARIABLES:
         775             :     character (len=512) :: err_msg
         776             :     integer             :: ierr
         777             : !
         778           0 :     ierr  = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val )
         779             :
         780           0 :     IF (ierr.ne.NF90_NOERR) THEN
         781             :        err_msg = 'NcDef_glob_attributes_r4: can not define attribute : ' // &
         782           0 :             TRIM (att_name)
         783           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         784             :     END IF
         785             :
         786           0 :   END SUBROUTINE NcDef_glob_attributes_r4
         787             : !EOC
         788             : !------------------------------------------------------------------------------
         789             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         790             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         791             : !------------------------------------------------------------------------------
         792             : !BOP
         793             : !
         794             : ! !IROUTINE: NcDef_glob_attributes_r8
         795             : !
         796             : ! !INTERFACE:
         797             : !
         798           0 :   SUBROUTINE NcDef_glob_attributes_r8(ncid, att_name, att_val)
         799             : !
         800             : ! !USES:
         801             : !
         802             :     USE netCDF
         803             :     USE m_do_err_out
         804             : !
         805             : ! !INPUT PARAMETERS:
         806             : !!    ncid    : netCDF file id
         807             : !!    att_name: attribute name
         808             : !!    att_val : attribute value
         809             : !
         810             :     REAL*8,            INTENT(IN) :: att_val
         811             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         812             :     INTEGER,           INTENT(IN) :: ncid
         813             : !
         814             : ! !DESCRIPTION: Defines global attributes of type: REAL*4
         815             : !\\
         816             : !\\
         817             : ! !AUTHOR:
         818             : !  Bob Yantosca( based on code by Jules Kouatchou)
         819             : !
         820             : ! !REVISION HISTORY:
         821             : !  26 Sep 2013 - R. Yantosca - Initial version
         822             : !  See https://github.com/geoschem/hemco for complete history
         823             : !EOP
         824             : !-------------------------------------------------------------------------
         825             : !BOC
         826             : !
         827             : ! !LOCAL VARIABLES:
         828             :     character (len=512) :: err_msg
         829             :     integer             :: ierr
         830             : !
         831           0 :     ierr  = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val )
         832             :
         833           0 :     IF (ierr.ne.NF90_NOERR) THEN
         834             :        err_msg = 'NcDef_glob_attributes_r8: can not define attribute : ' // &
         835           0 :             TRIM (att_name)
         836           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         837             :     END IF
         838             :
         839           0 :   END SUBROUTINE NcDef_glob_attributes_r8
         840             : !EOC
         841             : !------------------------------------------------------------------------------
         842             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         843             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         844             : !------------------------------------------------------------------------------
         845             : !BOP
         846             : !
         847             : ! !IROUTINE: NcDef_glob_attributes_i_arr
         848             : !
         849             : ! !INTERFACE:
         850             : !
         851           0 :   SUBROUTINE NcDef_glob_attributes_i_arr(ncid, att_name, att_val)
         852             : !
         853             : ! !USES:
         854             : !
         855             :     USE netCDF
         856             :     USE m_do_err_out
         857             : !
         858             : ! !INPUT PARAMETERS:
         859             : !!    ncid    : netCDF file id
         860             : !!    att_name: attribute name
         861             : !!    att_val : attribute value
         862             : !
         863             :     INTEGER,           INTENT(IN) :: att_val(:)
         864             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         865             :     INTEGER,           INTENT(IN) :: ncid
         866             : !
         867             : ! !DESCRIPTION: Defines global attributes of type: INTEGER vector
         868             : !\\
         869             : !\\
         870             : ! !AUTHOR:
         871             : !  Bob Yantosca( based on code by Jules Kouatchou)
         872             : !
         873             : ! !REVISION HISTORY:
         874             : !  26 Sep 2013 - R. Yantosca - Initial version
         875             : !  See https://github.com/geoschem/hemco for complete history
         876             : !EOP
         877             : !-------------------------------------------------------------------------
         878             : !BOC
         879             : !
         880             : ! !LOCAL VARIABLES:
         881             :     CHARACTER (LEN=512) :: err_msg
         882             :     INTEGER             :: ierr
         883             : !
         884           0 :     ierr  = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val )
         885             :
         886           0 :     IF (ierr.ne.NF90_NOERR) THEN
         887             :        err_msg = 'NcDef_glob_attributes_i_arr: can not define attribute : ' &
         888           0 :             // Trim (att_name)
         889           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         890             :     END IF
         891             :
         892           0 :   END SUBROUTINE NcDef_glob_attributes_i_arr
         893             : !EOC
         894             : !------------------------------------------------------------------------------
         895             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         896             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         897             : !------------------------------------------------------------------------------
         898             : !BOP
         899             : !
         900             : ! !IROUTINE: NcDef_glob_attributes_r4_arr
         901             : !
         902             : ! !INTERFACE:
         903             : !
         904           0 :   SUBROUTINE NcDef_glob_attributes_r4_arr(ncid,att_name,att_val)
         905             : !
         906             : ! !USES:
         907             : !
         908             :     USE netCDF
         909             :     USE m_do_err_out
         910             : !
         911             : ! !INPUT PARAMETERS:
         912             : !!  ncid    : netCDF file id
         913             : !!  att_name: attribute name
         914             : !!  att_val : attribute value
         915             : !
         916             :     REAL*4,            INTENT(IN) :: att_val(:)
         917             :     CHARACTER (LEN=*), INTENT(IN) :: att_name
         918             :     INTEGER,           INTENT(IN) :: ncid
         919             : !
         920             : ! !DESCRIPTION: Defines global attributes of type: REAL*4 vector
         921             : !\\
         922             : !\\
         923             : ! !AUTHOR:
         924             : !  Bob Yantosca( based on code by Jules Kouatchou)
         925             : !
         926             : ! !REVISION HISTORY:
         927             : !  26 Sep 2013 - R. Yantosca - Initial version
         928             : !  See https://github.com/geoschem/hemco for complete history
         929             : !EOP
         930             : !-------------------------------------------------------------------------
         931             : !BOC
         932             : !
         933             : ! !LOCAL VARIABLES:
         934             :     character (len=512) :: err_msg
         935             :     integer             :: ierr
         936             : !
         937           0 :     ierr  = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val )
         938             :
         939           0 :     IF (ierr.ne.NF90_NOERR) THEN
         940             :        err_msg = 'NcDef_glob_attributes_r4_arr: can not define attribute : ' &
         941           0 :               // TRIM (att_name)
         942           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         943             :     END IF
         944             :
         945           0 :   END SUBROUTINE NcDef_glob_attributes_r4_arr
         946             : !EOC
         947             : !------------------------------------------------------------------------------
         948             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
         949             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
         950             : !------------------------------------------------------------------------------
         951             : !BOP
         952             : !
         953             : ! !IROUTINE: NcDef_glob_attributes_r8_arr
         954             : !
         955             : ! !INTERFACE:
         956             : !
         957           0 :   SUBROUTINE NcDef_glob_attributes_r8_arr(ncid, att_name, att_val)
         958             : !
         959             : ! !USES:
         960             : !
         961             :     USE netCDF
         962             :     USE m_do_err_out
         963             : !
         964             : ! !INPUT PARAMETERS:
         965             : !!  ncid    : netCDF file id
         966             : !!  att_name: attribute name
         967             : !!  att_val : attribute value
         968             : !
         969             :     REAL*8,            intent(in) :: att_val(:)
         970             :     character (len=*), intent(in) :: att_name
         971             :     integer,           intent(in) :: ncid
         972             : !
         973             : ! !DESCRIPTION: Defines global attributes of type: REAL*8 vector
         974             : !\\
         975             : !\\
         976             : ! !AUTHOR:
         977             : !  Bob Yantosca( based on code by Jules Kouatchou)
         978             : !
         979             : ! !REVISION HISTORY:
         980             : !  26 Sep 2013 - R. Yantosca - Initial version
         981             : !  See https://github.com/geoschem/hemco for complete history
         982             : !EOP
         983             : !-------------------------------------------------------------------------
         984             : !BOC
         985             : !
         986             : ! !LOCAL VARIABLES:
         987             :     character (len=512) :: err_msg
         988             :     integer             :: ierr
         989             : !
         990           0 :     ierr  = NF90_Put_Att( ncid, NF90_GLOBAL, att_name, att_val )
         991             :
         992           0 :     IF (ierr.ne.NF90_NOERR) THEN
         993             :        err_msg = 'NcDef_glob_attributes_r8_arr: can not define attribute : ' &
         994           0 :             // TRIM (att_name)
         995           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
         996             :     END IF
         997             :
         998           0 :   END SUBROUTINE NcDef_glob_attributes_r8_arr
         999             : !EOC
        1000             : !------------------------------------------------------------------------------
        1001             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
        1002             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
        1003             : !------------------------------------------------------------------------------
        1004             : !BOP
        1005             : !
        1006             : ! !IROUTINE: NcSetFill
        1007             : !
        1008             : ! !INTERFACE:
        1009             : !
        1010           0 :   SUBROUTINE NcSetFill(ncid, ifill, omode)
        1011             : !
        1012             : ! !USES:
        1013             : !
        1014             :     USE netCDF
        1015             :     USE m_do_err_out
        1016             : !
        1017             : ! !INPUT PARAMETERS:
        1018             : !
        1019             :     INTEGER, INTENT(IN   ) :: ncid, ifill
        1020             :     INTEGER, INTENT(INOUT) :: omode
        1021             : !
        1022             : ! !DESCRIPTION: Sets fill method.
        1023             : !\\
        1024             : !\\
        1025             : ! !AUTHOR:
        1026             : !  Jules Kouatchou
        1027             : !
        1028             : ! !REVISION HISTORY:
        1029             : !  See https://github.com/geoschem/hemco for complete history
        1030             : !EOP
        1031             : !-------------------------------------------------------------------------
        1032             : !BOC
        1033             : !
        1034             : ! !LOCAL VARIABLES:
        1035             :     character (len=512) :: err_msg
        1036             :     integer             :: mylen, ierr
        1037             : !
        1038           0 :     ierr = NF90_Set_Fill(ncid, NF90_NOFILL, omode)
        1039             :
        1040           0 :     IF (ierr.ne.NF90_NOERR) THEN
        1041           0 :        err_msg = 'NF90_Set_FIll: Error in omode  '
        1042           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
        1043             :     END IF
        1044             :
        1045           0 :   END SUBROUTINE NcSetFill
        1046             : !EOC
        1047             : !------------------------------------------------------------------------------
        1048             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
        1049             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
        1050             : !------------------------------------------------------------------------------
        1051             : !BOP
        1052             : !
        1053             : ! !IROUTINE: NcEnd_Def
        1054             : !
        1055             : ! !INTERFACE:
        1056             : !
        1057           0 :   SUBROUTINE NcEnd_Def(ncid)
        1058             : !
        1059             : ! !USES:
        1060             : !
        1061             :     USE netCDF
        1062             :     USE m_do_err_out
        1063             : !
        1064             : ! !INPUT PARAMETERS:
        1065             : !
        1066             :     INTEGER, INTENT(IN) :: ncid
        1067             : !
        1068             : ! !DESCRIPTION: Ends definitions of variables and their attributes.
        1069             : !\\
        1070             : !\\
        1071             : ! !AUTHOR:
        1072             : !  Jules Kouatchou
        1073             : !
        1074             : ! !REVISION HISTORY:
        1075             : !  See https://github.com/geoschem/hemco for complete history
        1076             : !EOP
        1077             : !-------------------------------------------------------------------------
        1078             : !BOC
        1079             : !
        1080             : ! !LOCAL VARIABLES:
        1081             :     CHARACTER (LEN=512) :: err_msg
        1082             :     INTEGER             ::  ierr
        1083             : !
        1084           0 :     ierr = NF90_Enddef(ncid)
        1085             :
        1086           0 :     IF (ierr.ne.NF90_NOERR) THEN
        1087           0 :        err_msg = 'NF90_EndDef: Error in closing netCDF define mode!'
        1088           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
        1089             :     END IF
        1090             :
        1091           0 :   END SUBROUTINE NcEnd_def
        1092             : !EOC
        1093             : !------------------------------------------------------------------------------
        1094             : !       NcdfUtilities: by Harvard Atmospheric Chemistry Modeling Group        !
        1095             : !                      and NASA/GSFC, SIVO, Code 610.3                        !
        1096             : !------------------------------------------------------------------------------
        1097             : !BOP
        1098             : !
        1099             : ! !IROUTINE: NcBegin_Def
        1100             : !
        1101             : ! !INTERFACE:
        1102             : !
        1103           0 :   SUBROUTINE NcBegin_Def(ncid)
        1104             : !
        1105             : ! !USES:
        1106             : !
        1107             :     USE netCDF
        1108             :     USE m_do_err_out
        1109             : !
        1110             : ! !INPUT PARAMETERS:
        1111             : !
        1112             :     INTEGER, INTENT(IN) :: ncid
        1113             : !
        1114             : ! !DESCRIPTION: Opens (or re-opens) netCDF define mode, where variables
        1115             : !  and attributes can be defined.
        1116             : !\\
        1117             : !\\
        1118             : ! !AUTHOR:
        1119             : !  Jules Kouatchou
        1120             : !
        1121             : ! !REVISION HISTORY:
        1122             : !  14 May 2014 - R. Yantosca - Initial version
        1123             : !  See https://github.com/geoschem/hemco for complete history
        1124             : !EOP
        1125             : !-------------------------------------------------------------------------
        1126             : !BOC
        1127             : !
        1128             : ! !LOCAL VARIABLES:
        1129             :     character (len=512) :: err_msg
        1130             :     integer             :: ierr
        1131             : !
        1132           0 :     ierr = NF90_Redef (ncid)
        1133             :
        1134           0 :     IF (ierr.ne.NF90_NOERR) THEN
        1135           0 :        err_msg = 'NF90_ReDef: Error in opening netCDF define mode!'
        1136           0 :        CALL Do_Err_Out (err_msg, .true., 0, 0, 0, 0, 0.0d0, 0.0d0)
        1137             :     END IF
        1138             :
        1139           0 :   END SUBROUTINE NcBegin_Def
        1140             : !EOC
        1141             : END MODULE HCO_m_netcdf_io_define

Generated by: LCOV version 1.14