55 USE modi_interpol_sst_mth
57 USE modi_get_type_dim_n
70 TYPE(
grid_t),
INTENT(INOUT) :: G
74 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
75 INTEGER,
INTENT(IN) :: KLUOUT
80 INTEGER :: JMTH, INMTH
81 CHARACTER(LEN=2 ) :: YMTH
87 CHARACTER(LEN=12) :: YRECFM
91 REAL(KIND=JPRB) :: ZHOOK_HANDLE
107 ALLOCATE(s%XSST(ilu))
109 IF(s%LINTERPOL_SST)
THEN 114 ALLOCATE(s%XSST_MTH(
SIZE(s%XSST),inmth))
116 WRITE(ymth,
'(I2)') (jmth-1)
117 yrecfm=
'SST_MTH'//adjustl(ymth(:len_trim(ymth)))
118 CALL read_surf(hprogram,yrecfm,s%XSST_MTH(:,jmth),iresp)
125 ALLOCATE(s%XSST_MTH(0,0))
128 CALL read_surf(hprogram,yrecfm,s%XSST(:),iresp)
134 ALLOCATE(s%XPERTFLUX(ilu))
135 IF( s%LPERTFLUX )
THEN 136 CALL read_surf(hprogram,
'PERTSEAFLUX',s%XPERTFLUX(:),iresp)
151 CALL read_surf(hprogram,yrecfm,s%XZ0(:),iresp)
155 CALL read_surf(hprogram,
'VERSION',iversion,iresp)
156 IF (iversion <8)
THEN 157 s%LHANDLE_SIC=.false.
159 CALL read_surf(hprogram,
'HANDLE_SIC',s%LHANDLE_SIC,iresp)
165 ALLOCATE(s%XSSS(ilu))
170 IF(s%LINTERPOL_SSS)
THEN 175 ALLOCATE(s%XSSS_MTH(ilu,inmth))
177 WRITE(ymth,
'(I2)') (jmth-1)
178 yrecfm=
'SSS_MTH'//adjustl(ymth(:len_trim(ymth)))
179 CALL read_surf(hprogram,yrecfm,s%XSSS_MTH(:,jmth),iresp)
180 CALL check_sea(yrecfm,s%XSSS_MTH(:,jmth))
185 ELSEIF (iversion>=8)
THEN 187 ALLOCATE(s%XSSS_MTH(0,0))
190 CALL read_surf(hprogram,yrecfm,s%XSSS,iresp)
191 IF(s%LHANDLE_SIC)
THEN 199 ALLOCATE(s%XDIR_ALB (ilu))
200 ALLOCATE(s%XSCA_ALB (ilu))
202 IF(s%CSEA_ALB==
'RS14')
THEN 205 CALL read_surf(hprogram,yrecfm,s%XDIR_ALB(:),iresp)
208 CALL read_surf(hprogram,yrecfm,s%XSCA_ALB(:),iresp)
217 IF (
lhook)
CALL dr_hook(
'READ_SEAFLUX_N',1,zhook_handle)
228 CHARACTER(LEN=12),
INTENT(IN) :: HFIELD
229 REAL,
DIMENSION(:),
INTENT(IN) :: PFIELD
234 REAL(KIND=JPRB) :: ZHOOK_HANDLE
236 IF (
lhook)
CALL dr_hook(
'READ_SEAFLUX_N:CHECK_SEA',0,zhook_handle)
244 IF(pfield(ji)>zmax.OR.pfield(ji)<zmin)
THEN 246 WRITE(kluout,*)
'PROBLEM FIELD '//
trim(hfield)//
' =',pfield(ji),&
247 'NOT REALISTIC AT LOCATION (LAT/LON)',g%XLAT(ji),g%XLON
251 IF(ierrc>0)
CALL abor1_sfx(
'READ_SEAFLUX_N: FIELD '//
trim(hfield)//
' NOT REALISTIC' 253 IF (
lhook)
CALL dr_hook(
'READ_SEAFLUX_N:CHECK_SEA',1,zhook_handle)
subroutine get_type_dim_n(DTCO, U, HTYPE, KDIM)
static const char * trim(const char *name, int *n)
subroutine abor1_sfx(YTEXT)
subroutine read_seaflux_n(DTCO, G, S, U, HPROGRAM, KLUOUT)
subroutine interpol_sst_mth(S, HFLAG)
subroutine check_sea(HCOMMENT, PFIELD)