89 USE modi_gltools_nwords
90 USE modi_gltools_strsplit
97 INTEGER,
INTENT(in) :: &
99 TYPE(t_glt),
INTENT(inout) :: &
112 CHARACTER(80),
DIMENSION(:),
ALLOCATABLE :: &
118 REAL,
DIMENSION(SIZE(tpglt%dom,1),SIZE(tpglt%dom,2)) :: &
120 REAL,
DIMENSION(SIZE(tpglt%ice_atm,1),SIZE(tpglt%dom,1),SIZE(tpglt%dom,2)) :: &
129 IF ( nprinto >= 2 )
THEN
138 IF ( nnflxin==0 )
THEN
139 yfld=
'pfsit palbm ptsfm &
140 & pnsfi pswai pcdfli &
141 & pwatfli ptauxg ptauyg pustar psalf'
143 yfld=
'pfsit palbi ptsfi &
144 & pnsfi pswai pcdfli &
145 & pwatfli ptauxg ptauyg pustar psalf'
151 ALLOCATE( ylistfld(infld) )
157 zofac = 1. / xdomsrf_g
170 '===================== Control Gelato output data ' // &
171 '====================='
173 WRITE(noutlu,*)
'First Time-Step :',tpglt%ind%beg
174 WRITE(noutlu,*)
'Current Time-Step:',tpglt%ind%cur
175 WRITE(noutlu,*)
'Last Time-Step :',tpglt%ind%end
179 ' minimum maximum average'
181 ' ============ ============ ============'
194 IF ( trim(ylistfld(jf))==
'pfsit' )
THEN
195 IF ( nnflxin==0 )
THEN
196 zwork2(:,:) = tpglt%mix_atm(1,:,:)%fsi
199 zwork3(:,:,:) = tpglt%ice_atm(:,:,:)%fsi
201 ELSE IF ( trim(ylistfld(jf))==
'palbi' )
THEN
203 zwork3(:,:,:) = tpglt%ice_atm(:,:,:)%alb
204 ELSE IF ( trim(ylistfld(jf))==
'ptsfi' )
THEN
206 zwork3(:,:,:) = tpglt%ice_atm(:,:,:)%tsf
207 ELSE IF ( trim(ylistfld(jf))==
'palbm' )
THEN
208 zwork2(:,:) = tpglt%mix_atm(1,:,:)%alb
209 ELSE IF ( trim(ylistfld(jf))==
'ptsfm' )
THEN
210 zwork2(:,:) = tpglt%mix_atm(1,:,:)%tsf
211 ELSE IF ( trim(ylistfld(jf))==
'pnsfi' )
THEN
212 zwork2(:,:) = tpglt%all_oce(:,:)%nsf
213 ELSE IF ( trim(ylistfld(jf))==
'pswai' )
THEN
214 zwork2(:,:) = tpglt%all_oce(:,:)%swa
215 ELSE IF ( trim(ylistfld(jf))==
'pcdfli' )
THEN
216 zwork2(:,:) = tpglt%all_oce(:,:)%cdf
217 ELSE IF ( trim(ylistfld(jf))==
'pwatfli' )
THEN
218 zwork2(:,:) = tpglt%all_oce(:,:)%wfl
219 ELSE IF ( trim(ylistfld(jf))==
'ptauxg' )
THEN
220 zwork2(:,:) = tpglt%all_oce(:,:)%ztx
221 ELSE IF ( trim(ylistfld(jf))==
'ptauyg' )
THEN
222 zwork2(:,:) = tpglt%all_oce(:,:)%mty
223 ELSE IF ( trim(ylistfld(jf))==
'pustar' )
THEN
224 zwork2(:,:) = tpglt%all_oce(:,:)%ust
225 ELSE IF ( trim(ylistfld(jf))==
'psalf' )
THEN
226 zwork2(:,:) = tpglt%all_oce(:,:)%saf
229 WRITE(noutlu,*)
'**** WARNING ****'
230 WRITE(noutlu,*)
' In routine imod_tools_chkout'
231 WRITE(noutlu,*)
' ==> field ' // trim(ylistfld(jf)) // &
240 zmin = minval( zwork3(jk,:,:),mask=tpglt%dom%tmk==1 )
241 zmax = maxval( zwork3(jk,:,:),mask=tpglt%dom%tmk==1 )
242 zsum = sum( zwork3(jk,:,:)*tpglt%dom%srf ) * zofac
247 WRITE(noutlu,1020) jk
248 WRITE(noutlu,1010) adjustl(ylistfld(jf)),zmin,zmax,zsum
252 zmin = minval( zwork2(:,:),mask=tpglt%dom%tmk==1 )
253 zmax = maxval( zwork2(:,:),mask=tpglt%dom%tmk==1 )
254 zsum = sum( zwork2(:,:)*tpglt%dom%srf ) * zofac
255 IF ( lwg )
WRITE(noutlu,1010) adjustl(ylistfld(jf)),zmin,zmax,zsum
263 '===================================================================='
266 DEALLOCATE( ylistfld )
275 ydo = nsavout==1 .AND. lwg
280 WRITE(noutlu,*)
'CHKOUT: Saving Gelato glt_output data'
281 WRITE(noutlu,*)
'=================================='
286 imonth = ( kdate - 10000*( kdate/10000 ) ) / 100
287 WRITE( ystep,fmt=
'(I7)' ) tpglt%ind%cur
288 WRITE( yfile,fmt=
'("/outfld_",I2.2,"_",A)' ) &
289 imonth,trim( adjustl(ystep) )
290 yfile = trim(ciopath) // trim( adjustl(yfile) )
294 OPEN( unit=nsavlu, file=yfile, form=
'UNFORMATTED' )
297 IF ( nsavout==1 )
THEN
298 IF (nnflxin /= 0)
THEN
300 WRITE(ynum,
'(I2.2)') jk
301 tznam =
t_def(
"",
"",
"SIFRCI"//ynum,
"",
"T",
"SCALAR" )
302 CALL
gltools_wrivai( tznam,tpglt%ice_atm(jk,:,:)%fsi,kunit=nsavlu,kdbl=1 )
303 tznam =
t_def(
"",
"",
"SIALBI"//ynum,
"",
"T",
"SCALAR" )
304 CALL
gltools_wrivai( tznam,tpglt%ice_atm(jk,:,:)%alb,kunit=nsavlu,kdbl=1 )
305 tznam =
t_def(
"",
"",
"SITEMI"//ynum,
"",
"T",
"SCALAR" )
306 CALL
gltools_wrivai( tznam,tpglt%ice_atm(jk,:,:)%tsf,kunit=nsavlu,kdbl=1 )
311 tznam =
t_def(
"",
"",
"SIFRCSIS",
"",
"T",
"SCALAR" )
312 CALL
gltools_wrivai( tznam,tpglt%mix_atm(1,:,:)%fsi,kunit=nsavlu,kdbl=1 )
313 tznam =
t_def(
"",
"",
"SIALBSIM",
"",
"T",
"SCALAR" )
314 CALL
gltools_wrivai( tznam,tpglt%mix_atm(1,:,:)%alb,kunit=nsavlu,kdbl=1 )
315 tznam =
t_def(
"",
"",
"SITEMSIW",
"",
"T",
"SCALAR" )
316 CALL
gltools_wrivai( tznam,tpglt%mix_atm(1,:,:)%tsf,kunit=nsavlu,kdbl=1 )
320 tznam =
t_def(
"",
"",
"PNSFIXXX",
"",
"T",
"SCALAR" )
321 CALL
gltools_wrivai( tznam,tpglt%all_oce%nsf,kunit=nsavlu,kdbl=1 )
322 tznam =
t_def(
"",
"",
"PSWAIXXX",
"",
"T",
"SCALAR" )
323 CALL
gltools_wrivai( tznam,tpglt%all_oce%swa,kunit=nsavlu,kdbl=1 )
324 tznam =
t_def(
"",
"",
"PCDFLIXX",
"",
"T",
"SCALAR" )
325 CALL
gltools_wrivai( tznam,tpglt%all_oce%cdf,kunit=nsavlu,kdbl=1 )
326 tznam =
t_def(
"",
"",
"PWATFLIX",
"",
"T",
"SCALAR" )
327 CALL
gltools_wrivai( tznam,tpglt%all_oce%wfl,kunit=nsavlu,kdbl=1 )
328 tznam =
t_def(
"",
"",
"PTAUXGXX",
"",
"U",
"VECTOR" )
329 CALL
gltools_wrivai( tznam,tpglt%all_oce%ztx,kunit=nsavlu,kdbl=1 )
330 tznam =
t_def(
"",
"",
"PTAUYGXX",
"",
"V",
"VECTOR" )
331 CALL
gltools_wrivai( tznam,tpglt%all_oce%mty,kunit=nsavlu,kdbl=1 )
332 tznam =
t_def(
"",
"",
"PUSTARXX",
"",
"T",
"SCALAR" )
333 CALL
gltools_wrivai( tznam,tpglt%all_oce%ust,kunit=nsavlu,kdbl=1 )
334 tznam =
t_def(
"",
"",
"SALFLUXX",
"",
"T",
"SCALAR" )
335 CALL
gltools_wrivai( tznam,tpglt%all_oce%saf,kunit=nsavlu,kdbl=1 )
338 IF ( ydo )
CLOSE(nsavlu)
347 ' ************************************'
349 ' END OF gelato TIME STEP Nr =',tpglt%ind%cur
351 ' ************************************'
360 1010
FORMAT( 1x,a7,e12.5,4x,e12.5,4x,e12.5 )
361 1020
FORMAT(
"Category",i2.2,
":" )