20 USE xios
, ONLY : xios_is_valid_field, xios_field_is_active
32 CHARACTER(LEN=6),
INTENT(IN) :: HPROGRAM
33 CHARACTER(LEN=12),
INTENT(IN) :: HREC
34 CHARACTER(LEN=*),
DIMENSION(:),
INTENT(IN) :: HSELECT
35 LOGICAL,
INTENT(OUT) :: ONOWRITE
37 CHARACTER(LEN=12) :: YREC
38 INTEGER :: IFIELD,JFIELD
40 REAL(KIND=JPRB) :: ZHOOK_HANDLE
42 IF (
lhook)
CALL dr_hook(
'TEST_RECORD_LEN',0,zhook_handle)
44 IF (
trim(hrec)==
"time".OR.
trim(hrec)==
"longitude".OR.
trim(hrec)==
"latitude")
THEN 46 IF (
lhook)
CALL dr_hook(
'TEST_RECORD_LEN',1,zhook_handle)
55 IF (
lxios .AND. (
trim(hprogram)==
'XIOS' ))
THEN 58 IF (xios_is_valid_field(hrec))
THEN 59 onowrite = .NOT.xios_field_is_active(hrec)
69 IF (
lhook)
CALL dr_hook(
'TEST_RECORD_LEN',1,zhook_handle)
76 IF (len_trim(hrec)>12)
THEN 78 WRITE(iluout,*)
'----------------------------------------------' 79 WRITE(iluout,*)
'Error occured when writing a field ' 80 WRITE(iluout,*)
'The name of the field is too long ' 81 WRITE(iluout,*)
'The name must not be longer than 12 characters' 82 WRITE(iluout,*)
'Please shorten the name of your field ' 83 WRITE(iluout,fmt=
'(A32,A12,A1)')
' The field name currently is : "',hrec,
'"' 84 WRITE(iluout,*)
'----------------------------------------------' 85 CALL abor1_sfx(
'TEST_RECORD_LEN: FIELD NAME TOO LONG --> '//hrec)
89 SELECT CASE(hrec(1:4))
90 CASE(
"TEB1",
"TEB2",
"TEB3",
"TEB4",
"TEB5",
"TEB6",
"TEB7",
"TEB8",
"TEB9")
91 yrec=hrec(6:len(hrec))
95 IF (
SIZE(hselect)>0)
THEN 96 ifield=
count(hselect /=
' ')
99 IF (
trim(hselect(jfield))==
trim(yrec) )
THEN 104 IF(
trim(yrec)==
'time')onowrite=.false.
117 IF (
lhook)
CALL dr_hook(
'TEST_RECORD_LEN',1,zhook_handle)
static const char * trim(const char *name, int *n)
logical, dimension(50000) lnowrite
subroutine abor1_sfx(YTEXT)
subroutine test_record_len(HPROGRAM, HREC, HSELECT, ONOWRITE)
subroutine get_luout(HPROGRAM, KLUOUT)