modd_ch_emis_fieldn.F90 Source File


Contents


Source Code

!SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
!SFX_LIC This is part of the SURFEX software governed by the CeCILL version 2.1
!SFX_LIC version 1. See LICENSE, Licence_CeCILL_V2.1-en.txt and Licence_CeCILL_V2.1-fr.txt  
!SFX_LIC for details. version 1.
!     ###########################
      MODULE MODD_CH_EMIS_FIELD_n
!     ###########################
!
!!****  *MODD_CH_EMIS_FIELD_n* - declaration of chemical emission data arrays
!!
!!    PURPOSE
!!    -------
!       The purpose of this declarative module is to specify  the 
!     chemical emission data arrays.
!
!!
!!**  IMPLICIT ARGUMENTS
!!    ------------------
!!      None 
!!
!!    REFERENCE
!!    ---------
!!      
!!
!!    AUTHOR
!!    ------
!!      D. Gazen   *L.A.*
!!
!!    MODIFICATIONS
!!    -------------
!!      Original    08/03/2001                      
!!      01/12/03    (D.Gazen) change emissions handling for surf. externalization
!-------------------------------------------------------------------------------
!
!*       0.   DECLARATIONS
!             ------------
!
USE MODD_TYPE_EFUTIL
!
!
USE YOMHOOK   ,ONLY : LHOOK,   DR_HOOK
USE PARKIND1  ,ONLY : JPRB
!
IMPLICIT NONE
!
TYPE CH_EMIS_FIELD_t
!
  REAL               :: XTIME_SIMUL  = 0.
  INTEGER            :: NTIME_MAX
  INTEGER            :: NEMIS_NBR
!                          ! number of chemical pgd fields chosen by user
  CHARACTER(LEN=3) , DIMENSION(:), POINTER :: CEMIS_AREA
!                          ! areas where chemical pgd fields are defined
!                          ! 'ALL' : everywhere
!                          ! 'SEA' : where sea exists
!                          ! 'LAN' : where land exists
!                          ! 'WAT' : where inland water exists
!                          ! 'NAT' : where natural or agricultural areas exist
!                          ! 'TWN' : where town areas exist
!                          ! 'STR' : where streets are present
!                          ! 'BLD' : where buildings are present
!                          !
  CHARACTER(LEN=40), DIMENSION(:), POINTER :: CEMIS_COMMENT ! comment
  CHARACTER(LEN=40), DIMENSION(:), POINTER :: CEMIS_NAME
!                          ! name of the chemical pgd fields (emitted species)
!
  INTEGER,           DIMENSION(:), POINTER :: NEMIS_TIME   ! emission time
!
  REAL,              DIMENSION(:,:), POINTER:: XEMIS_FIELDS ! emission pgd fields values
!
  INTEGER                                          :: NEMISPEC_NBR ! Number of chemical species
!
  TYPE(EMISSVAR_T),  DIMENSION(:), POINTER :: TSEMISS      ! Offline emission struct array
!
  TYPE(PRONOSVAR_T),               POINTER     :: TSPRONOSLIST ! Head pointer on pronostic
!                                                              variables list
!-------------------------------------------------------------------------------
!
END TYPE CH_EMIS_FIELD_t



CONTAINS

!




SUBROUTINE CH_EMIS_FIELD_INIT(YCH_EMIS_FIELD)
TYPE(CH_EMIS_FIELD_t), INTENT(INOUT) :: YCH_EMIS_FIELD
REAL(KIND=JPRB) :: ZHOOK_HANDLE
IF (LHOOK) CALL DR_HOOK("MODD_CH_EMIS_FIELD_N:CH_EMIS_FIELD_INIT",0,ZHOOK_HANDLE)
  NULLIFY(YCH_EMIS_FIELD%CEMIS_AREA)
  NULLIFY(YCH_EMIS_FIELD%CEMIS_COMMENT)
  NULLIFY(YCH_EMIS_FIELD%CEMIS_NAME)
  NULLIFY(YCH_EMIS_FIELD%NEMIS_TIME)
  NULLIFY(YCH_EMIS_FIELD%XEMIS_FIELDS)
  NULLIFY(YCH_EMIS_FIELD%TSEMISS)
YCH_EMIS_FIELD%XTIME_SIMUL=0.
YCH_EMIS_FIELD%NEMIS_NBR=0
YCH_EMIS_FIELD%NTIME_MAX=-1
YCH_EMIS_FIELD%NEMISPEC_NBR=0
IF (LHOOK) CALL DR_HOOK("MODD_CH_EMIS_FIELD_N:CH_EMIS_FIELD_INIT",1,ZHOOK_HANDLE)
END SUBROUTINE CH_EMIS_FIELD_INIT


END MODULE MODD_CH_EMIS_FIELD_n