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: 2025-01-13 21:54:50 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