59 USE modi_open_namelist
60 USE modi_close_namelist
61 USE modi_get_surf_size_n
72 USE modi_get_surf_mask_n
84 TYPE(
sso_t),
INTENT(INOUT) :: USS
86 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
87 LOGICAL,
INTENT(OUT) :: OCH_EMIS
97 INTEGER :: ILU, IL_SEA, IL_LAND, IL
102 INTEGER :: NEMIS_PGD_NBR
103 CHARACTER(LEN=40),
DIMENSION(JPEMISMAX_F):: CEMIS_PGD_NAME
104 CHARACTER(LEN=40),
DIMENSION(JPEMISMAX_F):: CEMIS_PGD_COMMENT
105 INTEGER,
DIMENSION(JPEMISMAX_F):: NEMIS_PGD_TIME
106 CHARACTER(LEN=3),
DIMENSION(JPEMISMAX_F):: CEMIS_PGD_AREA
107 CHARACTER(LEN=3),
DIMENSION(JPEMISMAX_F):: CEMIS_PGD_ATYPE
108 CHARACTER(LEN=28),
DIMENSION(JPEMISMAX_F):: CEMIS_PGD_FILE
109 CHARACTER(LEN=6),
DIMENSION(JPEMISMAX_F):: CEMIS_PGD_FILETYPE
110 CHARACTER(LEN=6) :: YMASK
111 REAL,
DIMENSION(:),
ALLOCATABLE :: ZEMIS_FIELD, ZEMIS_FIELDS
112 INTEGER,
DIMENSION(:),
ALLOCATABLE :: IMASK
113 REAL(KIND=JPRB) :: ZHOOK_HANDLE
116 NAMELIST/nam_ch_emis_pgd/ nemis_pgd_nbr,cemis_pgd_name,nemis_pgd_time,&
117 cemis_pgd_comment,cemis_pgd_area,cemis_pgd_atype,cemis_pgd_file,&
128 nemis_pgd_time(:) = 0
145 CALL posnam(ilunam,
'NAM_CH_EMIS_PGD',gfound,iluout)
146 IF (gfound)
READ(unit=ilunam,nml=nam_ch_emis_pgd)
163 ALLOCATE(zemis_fields(
nl))
165 ALLOCATE(che%XEMIS_FIELDS (
nl,che%NEMIS_NBR))
166 ALLOCATE(che%CEMIS_AREA (che%NEMIS_NBR))
167 ALLOCATE(che%CEMIS_COMMENT(che%NEMIS_NBR))
168 ALLOCATE(che%CEMIS_NAME (che%NEMIS_NBR))
169 ALLOCATE(che%NEMIS_TIME (che%NEMIS_NBR))
179 och_emis = che%NEMIS_NBR > 0
185 DO jnbr=1,che%NEMIS_NBR
186 catype = cemis_pgd_atype(jnbr)
187 SELECT CASE (che%CEMIS_AREA(jnbr))
198 CALL abor1_sfx(
'PGD_CHEMISTRY (1): EMISSION AREA NOT SUPPORTED')
200 ALLOCATE(zemis_field(il))
204 hprogram,che%CEMIS_NAME(jnbr),che%CEMIS_AREA(jnbr),cemis_pgd_file
211 ymask,il,imask,ilu,iluout)
213 DEALLOCATE(zemis_field)
219 SELECT CASE (che%CEMIS_AREA(jnbr))
221 che%XEMIS_FIELDS(:,jnbr) = (u%XNATURE(:)+u%XTOWN(:))*zemis_fields(
223 che%XEMIS_FIELDS(:,jnbr) = u%XSEA*zemis_fields(:)
225 che%XEMIS_FIELDS(:,jnbr) = zemis_fields(:)
227 CALL abor1_sfx(
'PGD_CHEMISTRY (2): EMISSION AREA NOT SUPPORTED')
230 DEALLOCATE(zemis_fields)
subroutine get_surf_size_n(DTCO, U, HTYPE, KL)
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine abor1_sfx(YTEXT)
subroutine get_surf_mask_n(DTCO, U, HTYPE, KDIM, KMASK, KLU, KLUOUT)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine pgd_chemistry(CHE, DTCO, UG, U, USS, HPROGRAM, OCH_EMIS)
subroutine get_luout(HPROGRAM, KLUOUT)
integer, parameter jpemismax_f
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)