6 SUBROUTINE ch_init_snap_n (CHN, HSV, HPROGRAM,KLU,HINIT,PRHOA,HCHEM_SURF_FILE)
40 USE modi_ch_conversion_factor
41 USE modi_ch_open_inputb
42 USE modi_build_pronoslist_n
43 USE modi_read_surf_field2d
44 USE modi_open_namelist
45 USE modi_close_namelist
59 CHARACTER(LEN=*),
DIMENSION(:),
POINTER :: HSV
61 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
62 INTEGER,
INTENT(IN) :: KLU
63 CHARACTER(LEN=3),
INTENT(IN) :: HINIT
67 REAL,
DIMENSION(:),
INTENT(IN) :: PRHOA
68 CHARACTER(LEN=28),
INTENT(IN) :: HCHEM_SURF_FILE
72 REAL,
DIMENSION(:,:),
ALLOCATABLE :: ZTEMP
76 CHARACTER (LEN=3) :: YCONVERSION
77 CHARACTER (LEN=16) :: YRECFM
78 CHARACTER (LEN=100) :: YCOMMENT
82 CHARACTER(LEN=40) :: YSPEC_NAME
87 REAL(KIND=JPRB) :: ZHOOK_HANDLE
94 CALL read_surf(hprogram,yrecfm,iversion,iresp)
96 CALL read_surf(hprogram,yrecfm,ibug,iresp)
102 IF (iversion>7 .OR. (iversion==7 .AND. ibug>=3) )
THEN 103 CALL read_surf(hprogram,
'EMISPEC_NBR',chn%NEMIS_NBR,iresp)
104 CALL read_surf(hprogram,
'SNAP_NBR',chn%NEMIS_SNAP,iresp)
105 CALL read_surf(hprogram,
'SNAP_TIME',chn%CSNAP_TIME_REF,iresp)
107 CALL abor1_sfx(
'CH_INIT_SNAPN: NO SNAP EMISSIONS IN SURFEX FILE: FILE TOO OLD' 121 ALLOCATE(chn%CEMIS_NAME ( chn%NEMIS_NBR))
122 ALLOCATE(chn%CEMIS_COMMENT ( chn%NEMIS_NBR))
123 ALLOCATE(chn%XEMIS_FIELDS_SNAP(klu,chn%NEMIS_SNAP,chn%NEMIS_NBR))
124 ALLOCATE(chn%XEMIS_FIELDS (klu, chn%NEMIS_NBR))
126 ALLOCATE(chn%XSNAP_MONTHLY(chn%NSNAP_M,chn%NEMIS_SNAP,chn%NEMIS_NBR))
127 ALLOCATE(chn%XSNAP_DAILY (chn%NSNAP_D,chn%NEMIS_SNAP,chn%NEMIS_NBR))
128 ALLOCATE(chn%XSNAP_HOURLY (chn%NSNAP_H,chn%NEMIS_SNAP,chn%NEMIS_NBR))
130 IF (chn%CSNAP_TIME_REF==
'LEGAL')
THEN 131 ALLOCATE(chn%XDELTA_LEGAL_TIME(klu))
133 CALL read_surf(hprogram,yrecfm,chn%XDELTA_LEGAL_TIME(:),iresp,ycomment
136 IF (hprogram==
"NC ")
THEN 137 isnap = max(chn%NSNAP_M,chn%NSNAP_D,chn%NSNAP_H)
138 ALLOCATE(ztemp(isnap,chn%NEMIS_SNAP))
141 DO jspec = 1,chn%NEMIS_NBR
144 WRITE(yrecfm,
'("EMISNAME",I3.3)') jspec
145 CALL read_surf(hprogram,yrecfm,yspec_name,iresp,ycomment)
146 chn%CEMIS_COMMENT(jspec)=ycomment
148 CALL abor1_sfx(
'CH_INIT_SNAPN: PROBLEM WHEN READING NAME OF EMITTED CHEMICAL SPECIES' 150 WRITE(iluout,*)
' Emission ',jspec,
' : ',trim(yspec_name)
151 chn%CEMIS_NAME(jspec) = yspec_name(1:12)
154 DO jsnap=1,chn%NEMIS_SNAP
155 WRITE(yrecfm,
'("SN",I2.2,"_",A7)') jsnap,chn%CEMIS_NAME(jspec)
156 CALL read_surf(hprogram,yrecfm,chn%XEMIS_FIELDS_SNAP(:,jsnap,jspec),iresp
160 yrecfm =
"E_"//trim(chn%CEMIS_NAME(jspec))//
"_M" 161 IF (hprogram==
"NC ")
THEN 167 yrecfm =
"E_"//trim(chn%CEMIS_NAME(jspec))//
"_D" 168 IF (hprogram==
"NC ")
THEN 170 chn%XSNAP_DAILY(:,:,jspec) = ztemp(1:chn%NSNAP_D,:)
174 yrecfm =
"E_"//trim(chn%CEMIS_NAME(jspec))//
"_H" 175 IF (hprogram==
"NC ")
THEN 177 chn%XSNAP_HOURLY(:,:,jspec) = ztemp(1:chn%NSNAP_H,:)
183 IF (hprogram==
"NC ")
DEALLOCATE(ztemp)
188 IF (hinit==
'ALL')
THEN 193 READ(ich,
'(A3)') yconversion
195 chn%CCONVERSION = yconversion
197 ALLOCATE (chn%XCONVERSION(klu))
210 IF (
lhook)
CALL dr_hook(
'CH_INIT_SNAP_N',1,zhook_handle)
subroutine ch_conversion_factor(PCONVERSION, HCONVERSION, PRHOA)
subroutine build_pronoslist_n(HSV, KEMIS_NBR, HEMIS_NAME, TPPRONOS,
subroutine ch_init_snap_n(CHN, HSV, HPROGRAM, KLU, HINIT, PRHOA, HCHE
subroutine abor1_sfx(YTEXT)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine read_surf_field2d(HPROGRAM, PFIELD2D, HFIELDNAME, HCOMMEN
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)