34 USE modi_ch_open_inputb
55 CHARACTER(LEN=*),
DIMENSION(:),
POINTER :: HSV
57 INTEGER,
INTENT(IN) :: KEMIS_NBR
58 CHARACTER(LEN=12),
DIMENSION(KEMIS_NBR),
INTENT(IN) :: HEMIS_NAME
60 INTEGER,
INTENT(IN) :: KCH
61 INTEGER,
INTENT(IN) :: KLUOUT
62 INTEGER,
INTENT(IN) :: KVERB
66 CHARACTER(LEN=256) :: YINPLINE
72 CHARACTER(LEN=32) :: YPRO_NAME, YEMIS_NAME
74 CHARACTER(LEN=6),
DIMENSION(:),
POINTER :: CNAMES
77 REAL(KIND=JPRB) :: ZHOOK_HANDLE
84 IF (
lhook)
CALL dr_hook(
'BUILD_PRONOSLIST_N',0,zhook_handle)
102 READ(kch,
'(A)',iostat=ierr) yinpline
104 yinpline = trim(adjustl(yinpline))
105 IF (len_trim(yinpline) == 0) cycle
106 IF (yinpline ==
'END_AGREGATION')
EXIT 111 indx =
index(yinpline,
' ')
112 ypro_name = yinpline(1:indx-1)
117 IF (cnames(ji) == ypro_name)
THEN 123 IF (.NOT. gfound)
THEN 124 WRITE(kluout,*)
'BUILD_PRONOSLIST ERROR : ',trim(ypro_name),&
125 ' not found in pronostic variables list !' 126 CALL abor1_sfx(
'BUILD_PRONOSLISTN: VARIABLE NOT FOUND')
133 DO WHILE(
ASSOCIATED(current))
134 IF (current%NAMINDEX == indx_pro)
THEN 135 inbcoeff = current%NBCOEFF
139 current=>current%NEXT
141 IF (.NOT. gfound)
THEN 144 current%NAMINDEX = indx_pro
153 yinpline = adjustl(yinpline(indx:))
154 indx =
index(yinpline,
' ')
156 inbcoeff = inbcoeff+1
158 WRITE(kluout,*)
'FATAL ERROR : Number of aggregation coefficients for ' 160 WRITE(kluout,*)
'=> You should increase the JPNBCOEFFMAX value in modd_type_efutil.f90' 161 CALL abor1_sfx(
'BUILD_PRONOSLISTN: NUMBER OF AGGREGATION COEFFICIENTS TOO BIG' 163 READ(yinpline(1:indx-1),*) current%XCOEFF(inbcoeff)
166 yinpline = adjustl(yinpline(indx:))
167 indx =
index(yinpline,
' ')
168 yemis_name = yinpline(1:indx-1)
173 IF (trim(hemis_name(ji)) == trim(yemis_name))
THEN 175 current%NEFINDEX(inbcoeff) = ji
179 IF (.NOT. gfound)
THEN 180 WRITE(kluout,*)
'ERROR : ',trim(yemis_name),&
181 ' not found in emission variables list !' 182 CALL abor1_sfx(
'BUILD_PRONOSLISTN: UNKNOWN EMISSION VARIABLE')
185 current%NBCOEFF = inbcoeff
192 WRITE(kluout,*)
'BUILD_PRONOSLIST: Aggregation results' 194 DO WHILE(
ASSOCIATED(current))
195 WRITE(kluout,*)
'Emission for Atmospheric Chemical Species ',trim(cnames
' (index ' 197 WRITE(kluout,*)
'is aggregated with the following weights from the Emission Inventory Species:' 198 DO ji=1,current%NBCOEFF
199 WRITE(kluout,*) current%XCOEFF(ji),hemis_name(current%NEFINDEX(ji)
201 current=>current%NEXT
205 IF (
lhook)
CALL dr_hook(
'BUILD_PRONOSLIST_N',1,zhook_handle)
243 CHARACTER(len=*),
INTENT(INOUT) :: HTEXT
247 CHARACTER,
PARAMETER :: YPTAB = char(9)
249 REAL(KIND=JPRB) :: ZHOOK_HANDLE
257 DO ji=1,len_trim(htext)
258 IF (htext(ji:ji) == yptab) htext(ji:ji) =
' '
subroutine build_pronoslist_n(HSV, KEMIS_NBR, HEMIS_NAME, TPPRONOS,
integer, parameter jpnbcoeffmax
subroutine abor1_sfx(YTEXT)
subroutine tab2space(HTEXT)