SURFEX  V8_0
Surfex V8_0 release
 All Classes Files Functions Variables
modd_ch_snapn.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! ###########################
7 ! ###########################
8 !
9 !!**** *MODD_CH_SNAP_n* - declaration of chemical emission data arrays
10 !!
11 !! PURPOSE
12 !! -------
13 ! The purpose of this declarative module is to specify the
14 ! chemical emission data arrays.
15 !
16 !!
17 !!** IMPLICIT ARGUMENTS
18 !! ------------------
19 !! None
20 !!
21 !! REFERENCE
22 !! ---------
23 !!
24 !!
25 !! AUTHOR
26 !! ------
27 !! D. Gazen *L.A.*
28 !!
29 !! MODIFICATIONS
30 !! -------------
31 !! Original 08/03/2001
32 !! 01/12/03 (D.Gazen) change emissions handling for surf. externalization
33 !! M.Leriche 04/2014 change length of CHARACTER for emission 6->12
34 !-------------------------------------------------------------------------------
35 !
36 !* 0. DECLARATIONS
37 ! ------------
38 !
40 !
41 USE yomhook ,ONLY : lhook, dr_hook
42 USE parkind1 ,ONLY : jprb
43 !
44 IMPLICIT NONE
45 !
47 !
48  INTEGER :: NEMIS_NBR
49 ! ! number of chemical pgd fields chosen by user
50  CHARACTER(LEN=3) :: CCONVERSION
51 ! ! Unit conversion code
52  CHARACTER(LEN=5) :: CSNAP_TIME_REF
53 ! ! Reference time for Snap temporal profiles
54 ! ! 'UTC ' : UTC time
55 ! ! 'SOLAR' : SOLAR time
56 ! ! 'LEGAL' : LEGAL time
57 ! !
58 
59  CHARACTER(LEN=12), DIMENSION(:), POINTER :: CEMIS_NAME
60 ! ! name of the chemical fields (emitted species)
61  CHARACTER(LEN=40), DIMENSION(:), POINTER :: CEMIS_COMMENT
62 ! ! comment on the chemical fields (emitted species)
63 !
64  REAL, DIMENSION(:,:,:), POINTER:: XEMIS_FIELDS_SNAP ! Emission factor for
65 ! ! each chemical specie and
66 ! ! each snap
67  REAL, DIMENSION(:,:), POINTER:: XEMIS_FIELDS ! Emission for each specie
68 ! ! (at a given time taking into
69 ! ! account all snaps)
70  REAL, DIMENSION(:), POINTER:: XDELTA_LEGAL_TIME ! Difference (in hours)) between
71 ! ! Legal time and UTC time
72  INTEGER :: NEMIS_SNAP ! number of snaps
73  INTEGER :: NSNAP_M ! number of months
74  INTEGER :: NSNAP_D ! number of days
75  INTEGER :: NSNAP_H ! number of hours
76  REAL, DIMENSION(:,:,:), POINTER:: XSNAP_MONTHLY
77  REAL, DIMENSION(:,:,:), POINTER:: XSNAP_DAILY
78  REAL, DIMENSION(:,:,:), POINTER:: XSNAP_HOURLY
79  REAL, DIMENSION(:), POINTER:: XCONVERSION ! conversion factor
80 !
81  TYPE(pronosvar_t), POINTER :: TSPRONOSLIST ! Head pointer on pronostic
82 ! variables list
83 !-------------------------------------------------------------------------------
84 !
85 END TYPE ch_emis_snap_t
86 
87 
88 
89  CONTAINS
90 
91 !
92 
93 
94 
95 
96 SUBROUTINE ch_emis_snap_init(YCH_EMIS_SNAP)
97 TYPE(ch_emis_snap_t), INTENT(INOUT) :: ych_emis_snap
98 REAL(KIND=JPRB) :: zhook_handle
99 IF (lhook) CALL dr_hook("MODD_CH_SNAP_n:CH_EMIS_FIELD_INIT",0,zhook_handle)
100  nullify(ych_emis_snap%CEMIS_COMMENT)
101  nullify(ych_emis_snap%CEMIS_NAME)
102  nullify(ych_emis_snap%XDELTA_LEGAL_TIME)
103  nullify(ych_emis_snap%XEMIS_FIELDS)
104  nullify(ych_emis_snap%XEMIS_FIELDS_SNAP)
105  nullify(ych_emis_snap%XSNAP_DAILY)
106  nullify(ych_emis_snap%XSNAP_HOURLY)
107  nullify(ych_emis_snap%XSNAP_MONTHLY)
108  nullify(ych_emis_snap%XCONVERSION)
109 ych_emis_snap%CCONVERSION=' '
110 ych_emis_snap%CSNAP_TIME_REF=' '
111 ych_emis_snap%NEMIS_NBR=0
112 ych_emis_snap%NEMIS_SNAP=0
113 ych_emis_snap%NSNAP_M=0
114 ych_emis_snap%NSNAP_D=0
115 ych_emis_snap%NSNAP_H=0
116 IF (lhook) CALL dr_hook("MODD_CH_SNAP_n:CH_EMIS_FIELD_INIT",1,zhook_handle)
117 END SUBROUTINE ch_emis_snap_init
118 
119 
120 END MODULE modd_ch_snap_n
121 
subroutine ch_emis_snap_init(YCH_EMIS_SNAP)