44 USE modi_test_record_len
46 USE yomhook
,ONLY : lhook, dr_hook
47 USE parkind1
,ONLY : jprb
55 CHARACTER(LEN=12),
INTENT(IN) :: hrec
56 INTEGER,
INTENT(IN) :: kpatch
57 LOGICAL,
INTENT(INOUT) :: owfl
58 INTEGER :: ip, ivar, ifield, jfield
61 REAL(KIND=JPRB) :: zhook_handle
64 IF (lhook) CALL dr_hook(
'INIT_WRITE_BIN',0,zhook_handle)
65 ireclen=u%NDIM_FULL*kpatch*4
69 IF (hrec==cvar(ip))
THEN
76 IF (ivar.NE.nunit0)
THEN
82 IF (cvar(1).NE.
' ') ivar=maxval(nvar(:))
85 IF (.NOT.dgu%LSELECT)
THEN
87 IF ( (hrec(1:2)/=
'D_' ) .AND. &
88 (hrec(1:2)/=
'DX' ) .AND. &
89 (hrec(1:2)/=
'DY' ) .AND. &
90 (hrec(1:4)/=
'CLAY' ) .AND. &
91 (hrec(1:4)/=
'SAND' ) .AND. &
92 (hrec(1:2)/=
'ZS' ) .AND. &
93 (hrec(1:4)/=
'SSO_' ) .AND. &
94 (hrec(1:4)/=
'Q2M_' ) .AND. &
95 (hrec(1:4)/=
'RESA' ) .AND. &
96 (hrec(1:3)/=
'RI_' ) .AND. &
97 (hrec(1:5)/=
'REG_L' ) .AND. &
98 (hrec(1:3)/=
'AOS' ) .AND. &
99 (hrec(1:3)/=
'HO2' ) .AND. &
100 (hrec(1:3)/=
'RGL' ) .AND. &
101 (hrec(1:3)/=
'SWD' ) .AND. &
102 (hrec(1:3)/=
'SWU' ) .AND. &
103 (hrec(1:3)/=
'LWD' ) .AND. &
104 (hrec(1:3)/=
'LWU' ) .AND. &
105 (hrec(1:3)/=
'ALB' ) .AND. &
106 (hrec(1:2)/=
'DG' ) .AND. &
107 (hrec(1:2)/=
'CV' ) .AND. &
108 (hrec(1:5)/=
'GAMMA' ) .AND. &
109 (hrec(1:5)/=
'RSMIN' ) .AND. &
110 (hrec(1:5)/=
'WRMAX' ) .AND. &
111 (hrec(1:5)/=
'Z0REL' ) .AND. &
112 (hrec(1:5)/=
'Z0SEA' ) .AND. &
113 (hrec(1:7)/=
'Z0WATER' ) .AND. &
114 (hrec(4:6)/=
'_ZS' ) .AND. &
115 (hrec(1:7)/=
'VEGTYPE' ) .AND. &
116 (hrec(1:5)/=
'COVER' ) .AND. &
117 (hrec(1:5)/=
'IRRIG' ) .AND. &
118 (hrec(1:4)/=
'TI_R' ) .AND. &
119 (hrec(1:3)/=
'CD_' ) .AND. &
120 (hrec(1:3)/=
'CE_' ) .AND. &
121 (hrec(1:3)/=
'CH_' ) .AND. &
122 (hrec(1:4)/=
'FMU_' ) .AND. &
123 (hrec(1:4)/=
'FMV_' ) .AND. &
124 (hrec(1:5)/=
'DRAIN' ) .AND. &
125 (hrec(1:4)/=
'EVAP' ) .AND. &
126 (hrec(1:6)/=
'GFLUXC' ) .AND. &
127 (hrec(1:6)/=
'GFLUX_' ) .AND. &
128 (hrec(1:6)/=
'HORTON' ) .AND. &
129 (hrec(1:6)/=
'RUNOFF' ) .AND. &
130 (hrec(1:6)/=
'SNMELT' ) .AND. &
131 (hrec(1:6)/=
'DRIVEG' ) .AND. &
132 (hrec(1:2)/=
'Z0' ) )
THEN
135 IF (ivar-nunit0>jpvar)
THEN
136 CALL
abor1_sfx(
'TOO MANY FIELDS TO BE WRITTEN IN THE "BINARY" TYPE TIMESERIES')
138 cvar(ivar-nunit0) = hrec
139 nvar(ivar-nunit0) = ivar
140 OPEN(unit=ivar,file=trim(hrec)//
'.BIN',form=
'UNFORMATTED',access=
'DIRECT',recl=ireclen)
150 DO jfield=1,
SIZE(dgu%CSELECT)
151 IF (dgu%CSELECT(jfield)==
' ')
EXIT
156 "ASCII ",hrec,lmatch)
158 IF (.NOT. lmatch )
THEN
161 IF (ivar-nunit0>jpvar)
THEN
162 CALL
abor1_sfx(
'TOO MANY FIELDS TO BE WRITTEN IN THE "BINARY" TYPE TIMESERIES')
164 cvar(ivar-nunit0) = hrec
165 nvar(ivar-nunit0) = ivar
166 OPEN(unit=ivar,file=trim(hrec)//
'.BIN',form=
'UNFORMATTED',access=
'DIRECT',recl=ireclen)
177 IF (lhook) CALL dr_hook(
'INIT_WRITE_BIN',1,zhook_handle)
subroutine abor1_sfx(YTEXT)
subroutine init_write_bin(DGU, U, HREC, KPATCH, OWFL)
subroutine test_record_len(DGU, HPROGRAM, HREC, ONOWRITE)