56 USE modi_interpol_sst_mth
58 USE modi_get_type_dim_n
61 USE yomhook
,ONLY : lhook, dr_hook
62 USE parkind1
,ONLY : jprb
75 CHARACTER(LEN=6),
INTENT(IN) :: hprogram
76 INTEGER,
INTENT(IN) :: kluout
81 INTEGER :: jmth, inmth
82 CHARACTER(LEN=2 ) :: ymth
88 CHARACTER(LEN=12) :: yrecfm
92 REAL(KIND=JPRB) :: zhook_handle
98 IF (lhook) CALL dr_hook(
'READ_SEAFLUX_N',0,zhook_handle)
109 ALLOCATE(s%XSST(ilu))
111 IF(s%LINTERPOL_SST)
THEN
116 ALLOCATE(s%XSST_MTH(
SIZE(s%XSST),inmth))
118 WRITE(ymth,
'(I2)') (jmth-1)
119 yrecfm=
'SST_MTH'//adjustl(ymth(:len_trim(ymth)))
121 hprogram,yrecfm,s%XSST_MTH(:,jmth),iresp)
125 s%TTIME%TDATE%YEAR,s%TTIME%TDATE%MONTH,s%TTIME%TDATE%DAY,
'T',s%XSST)
129 ALLOCATE(s%XSST_MTH(0,0))
133 hprogram,yrecfm,s%XSST(:),iresp)
139 ALLOCATE(s%XPERTFLUX(ilu))
140 IF( s%LPERTFLUX )
THEN
142 hprogram,
'PERTSEAFLUX',s%XPERTFLUX(:),iresp)
158 hprogram,yrecfm,s%XZ0(:),iresp)
163 hprogram,
'VERSION',iversion,iresp)
164 IF (iversion <8)
THEN
165 s%LHANDLE_SIC=.false.
168 hprogram,
'HANDLE_SIC',s%LHANDLE_SIC,iresp)
174 ALLOCATE(s%XSSS(ilu))
179 IF(s%LINTERPOL_SSS)
THEN
184 ALLOCATE(s%XSSS_MTH(ilu,inmth))
186 WRITE(ymth,
'(I2)') (jmth-1)
187 yrecfm=
'SSS_MTH'//adjustl(ymth(:len_trim(ymth)))
189 hprogram,yrecfm,s%XSSS_MTH(:,jmth),iresp)
190 CALL
check_sea(yrecfm,s%XSSS_MTH(:,jmth))
194 s%TTIME%TDATE%YEAR,s%TTIME%TDATE%MONTH,s%TTIME%TDATE%DAY,
'S',s%XSSS)
196 ELSEIF (iversion>=8)
THEN
198 ALLOCATE(s%XSSS_MTH(0,0))
202 hprogram,yrecfm,s%XSSS,iresp)
203 IF(s%LHANDLE_SIC)
THEN
211 ALLOCATE(s%XDIR_ALB (ilu))
212 ALLOCATE(s%XSCA_ALB (ilu))
214 IF(s%CSEA_ALB==
'RS14')
THEN
218 hprogram,yrecfm,s%XDIR_ALB(:),iresp)
222 hprogram,yrecfm,s%XSCA_ALB(:),iresp)
231 IF (lhook) CALL dr_hook(
'READ_SEAFLUX_N',1,zhook_handle)
242 CHARACTER(LEN=12),
INTENT(IN) :: hfield
243 REAL,
DIMENSION(:),
INTENT(IN) :: pfield
248 REAL(KIND=JPRB) :: zhook_handle
250 IF (lhook) CALL dr_hook(
'READ_SEAFLUX_N:CHECK_SEA',0,zhook_handle)
258 IF(pfield(ji)>zmax.OR.pfield(ji)<zmin)
THEN
260 WRITE(kluout,*)
'PROBLEM FIELD '//trim(hfield)//
' =',pfield(ji),&
261 'NOT REALISTIC AT LOCATION (LAT/LON)',sg%XLAT(ji),sg%XLON(ji)
265 IF(ierrc>0) CALL
abor1_sfx(
'READ_SEAFLUX_N: FIELD '//trim(hfield)//
' NOT REALISTIC')
267 IF (lhook) CALL dr_hook(
'READ_SEAFLUX_N:CHECK_SEA',1,zhook_handle)
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
subroutine read_seaflux_n(DTCO, SG, S, U, HPROGRAM, KLUOUT)
subroutine abor1_sfx(YTEXT)
subroutine check_sea(HCOMMENT, PFIELD)
subroutine interpol_sst_mth(S, KYEAR, KMONTH, KDAY, HFLAG, POUT)