57 USE modi_open_namelist
58 USE modi_close_namelist
62 USE modi_pgd_snap_temp_profile
81 TYPE(
sso_t),
INTENT(INOUT) :: USS
83 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
84 LOGICAL,
INTENT(OUT) :: OCH_EMIS
95 CHARACTER(LEN=5) :: YSNAP_TIME_REF
101 REAL(KIND=JPRB) :: ZHOOK_HANDLE
102 CHARACTER(LEN=12),
DIMENSION(JPEMISMAX_S):: CEMIS_NAME
103 CHARACTER(LEN=40),
DIMENSION(JPEMISMAX_S):: CEMIS_COMMENT
104 CHARACTER(LEN=28),
DIMENSION(JPEMISMAX_S):: CSNAP_MONTHLY_FILE
105 CHARACTER(LEN=28),
DIMENSION(JPEMISMAX_S):: CSNAP_DAILY_FILE
106 CHARACTER(LEN=28),
DIMENSION(JPEMISMAX_S):: CSNAP_HOURLY_FILE
107 CHARACTER(LEN=50),
DIMENSION(JPEMISMAX_S,JPSNAPMAX):: CSNAP_POTENTIAL_FILE
108 CHARACTER(LEN=6),
DIMENSION(JPEMISMAX_S) :: CSNAP_POTENTIAL_FILETYPE
109 REAL,
DIMENSION(JPEMISMAX_S,JPSNAPMAX):: XUNIF_SNAP
110 CHARACTER(LEN=50) :: CDELTA_LEGAL_TIME_FILE
111 CHARACTER(LEN=6) :: CDELTA_LEGAL_TIME_FILETYPE
112 REAL :: XUNIF_DELTA_LEGAL_TIME
114 INTEGER :: NEMIS_SNAP
117 NAMELIST/nam_ch_snap_emis_pgd/ nemis_nbr, nemis_snap, cemis_name,&
119 csnap_monthly_file, &
122 csnap_potential_file, &
123 csnap_potential_filetype, &
125 xunif_delta_legal_time, &
126 cdelta_legal_time_file, &
127 cdelta_legal_time_filetype
134 IF (
lhook)
CALL dr_hook(
'PGD_CHEMISTRY_SNAP',0,zhook_handle)
144 xunif_delta_legal_time =
xundef 163 CALL posnam(ilunam,
'NAM_CH_SNAP_EMIS_PGD',gfound,iluout)
164 IF (gfound)
READ(unit=ilunam,nml=nam_ch_snap_emis_pgd)
176 ALLOCATE(chn%CEMIS_NAME(nemis_nbr))
177 ALLOCATE(chn%CEMIS_COMMENT(nemis_nbr))
179 ALLOCATE(chn%XSNAP_MONTHLY (chn%NSNAP_M,nemis_snap,nemis_nbr))
180 ALLOCATE(chn%XSNAP_DAILY (chn%NSNAP_D,nemis_snap,nemis_nbr))
181 ALLOCATE(chn%XSNAP_HOURLY (chn%NSNAP_H,nemis_snap,nemis_nbr))
186 ALLOCATE(chn%XEMIS_FIELDS_SNAP(
nl,nemis_snap,nemis_nbr))
189 och_emis = nemis_nbr > 0
204 IF (jspec==1) ysnap_time_ref = chn%CSNAP_TIME_REF
205 IF (ysnap_time_ref/=chn%CSNAP_TIME_REF)
THEN 206 CALL abor1_sfx(
'ALL SNAP HOURLY PROFILES MUST HAVE THE SAME TIME REFERENCE' 209 DO jsnap=1,nemis_snap
212 hprogram,
'SNAP',
'ALL',csnap_potential_file(jspec,jsnap
223 IF (chn%CSNAP_TIME_REF==
'LEGAL')
THEN 224 ALLOCATE(chn%XDELTA_LEGAL_TIME(
nl))
226 hprogram,
'LEGAL_TIME',
'ALL', cdelta_legal_time_file,
234 WHERE(abs(chn%XDELTA_LEGAL_TIME(:))>=24.) &
235 chn%XDELTA_LEGAL_TIME(:) = chn%XDELTA_LEGAL_TIME(:) / 3600.
240 IF (
lhook)
CALL dr_hook(
'PGD_CHEMISTRY_SNAP',1,zhook_handle)
subroutine pgd_snap_temp_profile(HPROGRAM, HFILENAME, PSNAP_COEF, KSNAP, KTPS, HSNAP_TIME_REF)
subroutine pgd_chemistry_snap(CHN, DTCO, UG, U, USS, HPROGRAM, OCH_EMIS)
integer, parameter jpemismax_s
subroutine posnam(KULNAM, HDNAML, OFOUND, KLUOUT)
subroutine abor1_sfx(YTEXT)
subroutine close_namelist(HPROGRAM, KLUNAM)
subroutine get_luout(HPROGRAM, KLUOUT)
subroutine open_namelist(HPROGRAM, KLUNAM, HFILE)
integer, parameter jpsnapmax