    SUBROUTINE READ_CO2
!>--------------------------------------------------------------------------------------------------
!> SUBROUTINE READ_CO2
!>
!> SUBROUTINE: READ_CO2 - ?????
!> PROGRAMMER: ?????
!> ORG: ?????
!> DATE: ??-??-??
!>
!> ABSTRACT:
!> ?????
!>
!> PROGRAM HISTORY LOG:
!> ??-??-??  ?????      - ORIGINATOR
!> 18-01-15  LUCCI      - MODERNIZATION OF THE CODE, INCLUDING:
!>                        * F77 TO F90/F95
!>                        * INDENTATION & UNIFORMIZATION CODE
!>                        * REPLACEMENT OF COMMONS BLOCK FOR MODULES
!>                        * DOCUMENTATION WITH DOXYGEN
!>                        * OPENMP FUNCTIONALITY
!>
!>
!> INPUT ARGUMENT LIST:
!> NONE
!>
!> OUTPUT ARGUMENT LIST:
!> NONE
!>
!> INPUT/OUTPUT ARGUMENT LIST:
!> NONE 
!>
!> USE MODULES: ACMCLH
!>              ACMCLD
!>              ACMPRE
!>              ACMRDL
!>              ACMRDS
!>              ACMSFC
!>              BOCO
!>              CLDWTR
!>              CNVCLD
!>              CONTIN
!>              CTLBLK
!>              DYNAM
!>              F77KINDS
!>              GLB_TABLE
!>              INDX
!>              LOOPS
!>              MAPOT
!>              MAPPINGS
!>              MASKS
!>              MPPCOM
!>              PARMETA
!>              PARM_TBL
!>              PARMSOIL
!>              PHYS0
!>              PHYS2
!>              PVRBLS
!>              RDFSAV
!>              SOIL
!>              TEMPCOM
!>              TOPO
!>
!> DRIVER     : INIT
!>              INITS
!>
!> CALLS      : -----
!--------------------------------------------------------------------------------------------------
    USE ACMCLH
    USE ACMCLD
    USE ACMPRE
    USE ACMRDL
    USE ACMRDS
    USE ACMSFC
    USE BOCO
    USE CLDWTR
    USE CNVCLD
    USE CONTIN
    USE CTLBLK
    USE DYNAM0
    USE F77KINDS
    USE GLB_TABLE
    USE INDX
    USE LOOPS
    USE MAPOT0
    USE MAPPINGS
    USE MASKS
    USE MPPCOM
    USE PARMETA
    USE PARM_TBL
    USE PARMSOIL
    USE PHYS2
    USE PVRBLS
    USE RDFSAV
    USE SOIL
    USE TEMPCOM
    USE TOPO
!------------------------ 
! INCLUDE/SET PARAMETERS.
!------------------------ 
      INCLUDE "mpif.h"
!
#include "sp.h"
!
    REAL   (KIND=R4KIND), PARAMETER :: G      =    9.8           
    REAL   (KIND=R4KIND), PARAMETER :: CM1    = 2937.4
    REAL   (KIND=R4KIND), PARAMETER :: CM2    =    4.9283
    REAL   (KIND=R4KIND), PARAMETER :: CM3    =   23.5518
    REAL   (KIND=R4KIND), PARAMETER :: EPS    =    0.622
    REAL   (KIND=R4KIND), PARAMETER :: Q2INI  =     .50
    REAL   (KIND=R4KIND), PARAMETER :: EPSQ2  =    2.E-2
    REAL   (KIND=R4KIND), PARAMETER :: EPSQ   =    2.E-12
    REAL   (KIND=R4KIND), PARAMETER :: EPSWET =    0.0
    REAL   (KIND=R4KIND), PARAMETER :: Z0LAND =     .10
    REAL   (KIND=R4KIND), PARAMETER :: Z0SEA  =     .001
    REAL   (KIND=R4KIND), PARAMETER :: FCM    =     .00001
    REAL   (KIND=R4KIND), PARAMETER :: DTR    =    0.1745329E-1
    REAL   (KIND=R4KIND), PARAMETER :: H360   =  360.0
    REAL   (KIND=R4KIND), PARAMETER :: H1905  =  190.5
    REAL   (KIND=R4KIND), PARAMETER :: H105   =  105.0
!
    INTEGER(KIND=I4KIND), PARAMETER :: IMJM = IM * JM - JM / 2
    INTEGER(KIND=I4KIND), PARAMETER :: JMP1 = JM + 1
    INTEGER(KIND=I4KIND), PARAMETER :: IMT  = 2  * IM - 1
!------------------ 
! DECLARE VARIABLES
!------------------
    LOGICAL(KIND=L4KIND)                                                                        ::&
    & RUNB
!
    CHARACTER(LEN=32)                                                                           ::&
    & LABEL
!
    CHARACTER(LEN=40)                                                                           ::&
    & CONTRL  , FILALL  , FILMST  , FILTMP  , FILTKE  , FILUNV  , FILCLD  , FILRAD  , FILSFC
!
    INTEGER(KIND=I4KIND), DIMENSION(3)                                                          ::&
    & IDATB     
!
    INTEGER ISTAT(MPI_STATUS_SIZE)
!
#ifdef DP_REAL
    INTEGER(KIND=I8KIND), DIMENSION(IM, JM)                                                     ::&
    & ITEMPX
!
    INTEGER(KIND=I8KIND)                                                                        ::&
    & NFCSTX  , NBCX    , LISTX   , IDTADX  , KHLAX   , KHHAX   , KVLAX   , KVHAX   , KHL2X   ,   &
    & KHH2X   , KVL2X   , KVH2X   , IXMX    , IYMX
!
    LOGICAL(KIND=L8KIND)                                                                        ::&
    & SIGMAX
#endif
!------------------------------------------------ 
! ADAPTADO PARA A LEITURA DO ARQUIVO DE CO2 ANUAL 
! A DATA INICIAL DO ARQUIVO E 1875 
!------------------------------------------------- 
    OPEN (1, FORM='UNFORMATTED', FILE='CO2.bin', ACCESS='SEQUENTIAL') 
!---------------------------------
! DISTRIBUTE CO2 entre 1859 e 2100
!---------------------------------  
    DO M=1,242
!      
        IF (MYPE == 0) THEN
            READ(1) RACO2(M)
        END IF
!      
    END DO
!        
    CALL MPI_BCAST(RACO2(1), 242, MPI_REAL, 0, MPI_COMM_COMP, IRTN)
!-----------------------------------------     
! LE O INDICE DO VETOR PARA O TEMPO INCIAL
!----------------------------------------- 
    OPEN (8, FORM='FORMATTED', FILE='TEMPO_INIT_CO2.txt')
!
    READ(8,*) INITCO2
!---------------------------
! END OF SUBROUTINE READ_CO2     
!---------------------------
    RETURN
!
    END
