91 USE modi_gltools_nwords
92 USE modi_gltools_strsplit
99 INTEGER,
INTENT(in) :: &
101 TYPE(t_glt),
INTENT(in) :: &
114 CHARACTER(80),
DIMENSION(:),
ALLOCATABLE :: &
120 REAL,
DIMENSION(SIZE(tpglt%dom,1),SIZE(tpglt%dom,2)) :: &
122 REAL,
DIMENSION(SIZE(tpglt%atm_ice,1),SIZE(tpglt%dom,1),SIZE(tpglt%dom,2)) :: &
124 REAL,
DIMENSION(SIZE(tpglt%sit_d,1),SIZE(tpglt%dom,1),SIZE(tpglt%dom,2)) :: &
126 REAL,
DIMENSION(nxglo,nyglo) :: &
135 IF ( nprinto>=2 )
THEN
144 IF ( nnflxin==0 )
THEN
145 yfld=
'pbat pqml pqoc ptml psml pssh puml pvml &
146 & plip psop pztx pmty &
147 & pnsfm pdflm pswam pevam'
149 yfld=
'pbat pqml pqoc ptml psml pssh puml pvml &
150 & plip psop pztx pmty &
151 & pnsfi pdfli pswai pevai pnsfw pdflw pswaw pevaw'
155 yfld = trim(yfld) //
' asn fsi hsi hsn rsn tsf ssi age'
161 ALLOCATE( ylistfld(infld) )
167 zofac = 1. / xdomsrf_g
180 '===================== Control Gelato input data ' // &
181 '====================='
183 WRITE(noutlu,*)
'First Time-Step :',tpglt%ind%beg
184 WRITE(noutlu,*)
'Current Time-Step:',tpglt%ind%cur
185 WRITE(noutlu,*)
'Last Time-Step :',tpglt%ind%end
189 ' minimum maximum average'
191 ' ============ ============ ============'
205 IF ( trim(ylistfld(jf))==
'pbat' )
THEN
206 zwork2(:,:) = tpglt%bat(:,:)
207 ELSE IF ( trim(ylistfld(jf))==
'pqml' )
THEN
208 zwork2(:,:) = tpglt%oce_all(:,:)%qml
209 ELSE IF ( trim(ylistfld(jf))==
'pqoc' )
THEN
210 zwork2(:,:) = tpglt%oce_all(:,:)%qoc
211 ELSE IF ( trim(ylistfld(jf))==
'ptml' )
THEN
212 zwork2(:,:) = tpglt%oce_all(:,:)%tml
213 ELSE IF ( trim(ylistfld(jf))==
'psml' )
THEN
214 zwork2(:,:) = tpglt%oce_all(:,:)%sml
215 ELSE IF ( trim(ylistfld(jf))==
'pssh' )
THEN
216 zwork2(:,:) = tpglt%oce_all(:,:)%ssh
217 ELSE IF ( trim(ylistfld(jf))==
'puml' )
THEN
218 zwork2(:,:) = tpglt%oce_all(:,:)%uml
219 ELSE IF ( trim(ylistfld(jf))==
'pvml' )
THEN
220 zwork2(:,:) = tpglt%oce_all(:,:)%vml
221 ELSE IF ( trim(ylistfld(jf))==
'plip' )
THEN
222 zwork2(:,:) = tpglt%atm_all(:,:)%lip
223 ELSE IF ( trim(ylistfld(jf))==
'psop' )
THEN
224 zwork2(:,:) = tpglt%atm_all(:,:)%sop
225 ELSE IF ( trim(ylistfld(jf))==
'pztx' )
THEN
226 zwork2(:,:) = tpglt%atm_all(:,:)%ztx
227 ELSE IF ( trim(ylistfld(jf))==
'pmty' )
THEN
228 zwork2(:,:) = tpglt%atm_all(:,:)%mty
229 ELSE IF ( trim(ylistfld(jf))==
'pnsfm' )
THEN
230 zwork2(:,:) = tpglt%atm_mix(1,:,:)%nsf
231 ELSE IF ( trim(ylistfld(jf))==
'pdflm' )
THEN
232 zwork2(:,:) = tpglt%atm_mix(1,:,:)%dfl
233 ELSE IF ( trim(ylistfld(jf))==
'pswam' )
THEN
234 zwork2(:,:) = tpglt%atm_mix(1,:,:)%swa
235 ELSE IF ( trim(ylistfld(jf))==
'pevam' )
THEN
236 zwork2(:,:) = tpglt%atm_mix(1,:,:)%eva
237 ELSE IF ( trim(ylistfld(jf))==
'pnsfw' )
THEN
238 zwork2(:,:) = tpglt%atm_wat(:,:)%nsf
239 ELSE IF ( trim(ylistfld(jf))==
'pdflw' )
THEN
240 zwork2(:,:) = tpglt%atm_wat(:,:)%dfl
241 ELSE IF ( trim(ylistfld(jf))==
'pswaw' )
THEN
242 zwork2(:,:) = tpglt%atm_wat(:,:)%swa
243 ELSE IF ( trim(ylistfld(jf))==
'pevaw' )
THEN
244 zwork2(:,:) = tpglt%atm_wat(:,:)%eva
245 ELSE IF ( trim(ylistfld(jf))==
'pnsfi' )
THEN
247 zwork3(:,:,:) = tpglt%atm_ice(:,:,:)%nsf
248 ELSE IF ( trim(ylistfld(jf))==
'pdfli' )
THEN
250 zwork3(:,:,:) = tpglt%atm_ice(:,:,:)%dfl
251 ELSE IF ( trim(ylistfld(jf))==
'pswai' )
THEN
253 zwork3(:,:,:) = tpglt%atm_ice(:,:,:)%swa
254 ELSE IF ( trim(ylistfld(jf))==
'pevai' )
THEN
256 zwork3(:,:,:) = tpglt%atm_ice(:,:,:)%eva
257 ELSE IF ( trim(ylistfld(jf))==
'asn' )
THEN
259 zwork3d(:,:,:) = tpglt%sit_d(:,:,:)%asn
260 ELSE IF ( trim(ylistfld(jf))==
'fsi' )
THEN
262 zwork3d(:,:,:) = tpglt%sit_d(:,:,:)%fsi
263 ELSE IF ( trim(ylistfld(jf))==
'hsi' )
THEN
265 zwork3d(:,:,:) = tpglt%sit_d(:,:,:)%hsi
266 ELSE IF ( trim(ylistfld(jf))==
'hsn' )
THEN
268 zwork3d(:,:,:) = tpglt%sit_d(:,:,:)%hsn
269 ELSE IF ( trim(ylistfld(jf))==
'rsn' )
THEN
271 zwork3d(:,:,:) = tpglt%sit_d(:,:,:)%rsn
272 ELSE IF ( trim(ylistfld(jf))==
'tsf' )
THEN
274 zwork3d(:,:,:) = tpglt%sit_d(:,:,:)%tsf
275 ELSE IF ( trim(ylistfld(jf))==
'ssi' )
THEN
277 zwork3d(:,:,:) = tpglt%sit_d(:,:,:)%ssi
278 ELSE IF ( trim(ylistfld(jf))==
'age' )
THEN
280 zwork3d(:,:,:) = tpglt%sit_d(:,:,:)%age
281 ELSE IF ( trim(ylistfld(jf))==
'vmp' )
THEN
283 zwork3d(:,:,:) = tpglt%sit_d(:,:,:)%vmp
286 WRITE(noutlu,*)
'**** WARNING ****'
287 WRITE(noutlu,*)
' In routine imod_tools_chkinp'
288 WRITE(noutlu,*)
' ==> field ' // trim(ylistfld(jf)) // &
297 zmin = minval( zwork3(jk,:,:),mask=tpglt%dom%tmk==1 )
298 zmax = maxval( zwork3(jk,:,:),mask=tpglt%dom%tmk==1 )
299 zsum = sum( zwork3(jk,:,:)*tpglt%dom%srf ) * zofac
304 WRITE(noutlu,1020) jk
305 WRITE(noutlu,1010) adjustl(ylistfld(jf)),zmin,zmax,zsum
308 ELSE IF ( y3dd )
THEN
310 zmin = minval( zwork3d(jk,:,:),mask=tpglt%dom%tmk==1 )
311 zmax = maxval( zwork3d(jk,:,:),mask=tpglt%dom%tmk==1 )
312 zsum = sum( zwork3d(jk,:,:)*tpglt%dom%srf ) * zofac
317 WRITE(noutlu,1020) jk
318 WRITE(noutlu,1010) adjustl(ylistfld(jf)),zmin,zmax,zsum
322 zmin = minval( zwork2(:,:),mask=tpglt%dom%tmk==1 )
323 zmax = maxval( zwork2(:,:),mask=tpglt%dom%tmk==1 )
324 zsum = sum( zwork2(:,:)*tpglt%dom%srf ) * zofac
325 IF ( lwg )
WRITE(noutlu,1010) adjustl(ylistfld(jf)),zmin,zmax,zsum
333 '===================================================================='
336 DEALLOCATE( ylistfld )
345 ydo = nsavinp==1 .AND. lwg
348 WRITE(noutlu,*)
'CHKINP: Saving Gelato input data'
349 WRITE(noutlu,*)
'=================================='
354 imonth = ( kdate - 10000*( kdate/10000 ) ) / 100
355 WRITE( ystep,fmt=
'(I7)' ) tpglt%ind%cur
356 WRITE( yfile,fmt=
'("/inpfld_",I2.2,"_",A)' ) &
357 imonth,trim( adjustl(ystep) )
358 yfile = trim(ciopath) // trim( adjustl(yfile) )
362 OPEN( unit=nsavlu, file=yfile, form=
'UNFORMATTED' )
365 IF ( nsavinp==1 )
THEN
366 tznam =
t_def(
"",
"",
"BATHYOCE",
"",
"T",
"SCALAR" )
368 tznam =
t_def(
"",
"",
"OIQMLQML",
"",
"T",
"SCALAR" )
369 CALL
gltools_wrivai( tznam,tpglt%oce_all%qml,kunit=nsavlu,kdbl=1 )
370 tznam =
t_def(
"",
"",
"OIHEFHEF",
"",
"T",
"SCALAR" )
371 CALL
gltools_wrivai( tznam,tpglt%oce_all%qoc,kunit=nsavlu,kdbl=1 )
372 tznam =
t_def(
"",
"",
"OITMLTML",
"",
"T",
"SCALAR" )
373 CALL
gltools_wrivai( tznam,tpglt%oce_all%tml,kunit=nsavlu,kdbl=1 )
374 tznam =
t_def(
"",
"",
"OISMLSML",
"",
"T",
"SCALAR" )
375 CALL
gltools_wrivai( tznam,tpglt%oce_all%sml,kunit=nsavlu,kdbl=1 )
376 tznam =
t_def(
"",
"",
"OISSHSSH",
"",
"T",
"SCALAR" )
377 CALL
gltools_wrivai( tznam,tpglt%oce_all%ssh,kunit=nsavlu,kdbl=1 )
378 tznam =
t_def(
"",
"",
"OIUMLUML",
"",
"U",
"VECTOR" )
379 CALL
gltools_wrivai( tznam,tpglt%oce_all%uml,kunit=nsavlu,kdbl=1 )
380 tznam =
t_def(
"",
"",
"OIVMLVML",
"",
"V",
"VECTOR" )
381 CALL
gltools_wrivai( tznam,tpglt%oce_all%vml,kunit=nsavlu,kdbl=1 )
382 tznam =
t_def(
"",
"",
"AILIPLIP",
"",
"T",
"SCALAR" )
383 CALL
gltools_wrivai( tznam,tpglt%atm_all%lip,kunit=nsavlu,kdbl=1 )
384 tznam =
t_def(
"",
"",
"AISOPSOP",
"",
"T",
"SCALAR" )
385 CALL
gltools_wrivai( tznam,tpglt%atm_all%sop,kunit=nsavlu,kdbl=1 )
386 tznam =
t_def(
"",
"",
"AIZTXZTX",
"",
"U",
"VECTOR" )
387 CALL
gltools_wrivai( tznam,tpglt%atm_all%ztx,kunit=nsavlu,kdbl=1 )
388 tznam =
t_def(
"",
"",
"AIMTYMTY",
"",
"V",
"VECTOR" )
389 CALL
gltools_wrivai( tznam,tpglt%atm_all%mty,kunit=nsavlu,kdbl=1 )
391 IF ( nnflxin/=0 )
THEN
393 WRITE(ynum,
'(I2.2)') jk
394 tznam =
t_def(
"",
"",
"AINSFI"//ynum,
"",
"T",
"SCALAR" )
395 CALL
gltools_wrivai( tznam,tpglt%atm_ice(jk,:,:)%nsf,kunit=nsavlu,kdbl=1 )
396 tznam =
t_def(
"",
"",
"AIDFLI"//ynum,
"",
"T",
"SCALAR" )
397 CALL
gltools_wrivai( tznam,tpglt%atm_ice(jk,:,:)%dfl,kunit=nsavlu,kdbl=1 )
398 tznam =
t_def(
"",
"",
"AISWAI"//ynum,
"",
"T",
"SCALAR" )
399 CALL
gltools_wrivai( tznam,tpglt%atm_ice(jk,:,:)%swa,kunit=nsavlu,kdbl=1 )
400 tznam =
t_def(
"",
"",
"AIEVAI"//ynum,
"",
"T",
"SCALAR" )
401 CALL
gltools_wrivai( tznam,tpglt%atm_ice(jk,:,:)%eva,kunit=nsavlu,kdbl=1 )
404 tznam =
t_def(
"",
"",
"AINSFWAT",
"",
"T",
"SCALAR" )
405 CALL
gltools_wrivai( tznam,tpglt%atm_wat%nsf,kunit=nsavlu,kdbl=1 )
406 tznam =
t_def(
"",
"",
"AIDFLWAT",
"",
"T",
"SCALAR" )
407 CALL
gltools_wrivai( tznam,tpglt%atm_wat%dfl,kunit=nsavlu,kdbl=1 )
408 tznam =
t_def(
"",
"",
"AISWAWAT",
"",
"T",
"SCALAR" )
409 CALL
gltools_wrivai( tznam,tpglt%atm_wat%swa,kunit=nsavlu,kdbl=1 )
410 tznam =
t_def(
"",
"",
"AIEVAWAT",
"",
"T",
"SCALAR" )
411 CALL
gltools_wrivai( tznam,tpglt%atm_wat%eva,kunit=nsavlu,kdbl=1 )
415 tznam =
t_def(
"",
"",
"AINSFMIX",
"",
"T",
"SCALAR" )
416 CALL
gltools_wrivai( tznam,tpglt%atm_mix(1,:,:)%nsf,kunit=nsavlu,kdbl=1 )
417 tznam =
t_def(
"",
"",
"AIDFLMIX",
"",
"T",
"SCALAR" )
418 CALL
gltools_wrivai( tznam,tpglt%atm_mix(1,:,:)%dfl,kunit=nsavlu,kdbl=1 )
419 tznam =
t_def(
"",
"",
"AISWAMIX",
"",
"T",
"SCALAR" )
420 CALL
gltools_wrivai( tznam,tpglt%atm_mix(1,:,:)%swa,kunit=nsavlu,kdbl=1 )
421 tznam =
t_def(
"",
"",
"AIEVAMIX",
"",
"T",
"SCALAR" )
422 CALL
gltools_wrivai( tznam,tpglt%atm_mix(1,:,:)%eva,kunit=nsavlu,kdbl=1 )
428 WRITE(ynum,
'(I2.2)') jk
429 tznam =
t_def(
"",
"",
"ASNASN"//ynum,
"",
"T",
"SCALAR" )
430 CALL
gltools_wrivai( tznam,tpglt%sit_d(jk,:,:)%asn,kunit=nsavlu,kdbl=1 )
431 tznam =
t_def(
"",
"",
"FSIFSI"//ynum,
"",
"T",
"SCALAR" )
432 CALL
gltools_wrivai( tznam,tpglt%sit_d(jk,:,:)%fsi,kunit=nsavlu,kdbl=1 )
433 tznam =
t_def(
"",
"",
"HSIHSI"//ynum,
"",
"T",
"SCALAR" )
434 CALL
gltools_wrivai( tznam,tpglt%sit_d(jk,:,:)%hsi,kunit=nsavlu,kdbl=1 )
435 tznam =
t_def(
"",
"",
"HSNHSN"//ynum,
"",
"T",
"SCALAR" )
436 CALL
gltools_wrivai( tznam,tpglt%sit_d(jk,:,:)%hsn,kunit=nsavlu,kdbl=1 )
437 tznam =
t_def(
"",
"",
"RSNRSN"//ynum,
"",
"T",
"SCALAR" )
438 CALL
gltools_wrivai( tznam,tpglt%sit_d(jk,:,:)%rsn,kunit=nsavlu,kdbl=1 )
439 tznam =
t_def(
"",
"",
"TSFTSF"//ynum,
"",
"T",
"SCALAR" )
440 CALL
gltools_wrivai( tznam,tpglt%sit_d(jk,:,:)%tsf,kunit=nsavlu,kdbl=1 )
441 tznam =
t_def(
"",
"",
"SSISSI"//ynum,
"",
"T",
"SCALAR" )
442 CALL
gltools_wrivai( tznam,tpglt%sit_d(jk,:,:)%ssi,kunit=nsavlu,kdbl=1 )
443 tznam =
t_def(
"",
"",
"AGEAGE"//ynum,
"",
"T",
"SCALAR" )
444 CALL
gltools_wrivai( tznam,tpglt%sit_d(jk,:,:)%age,kunit=nsavlu,kdbl=1 )
445 tznam =
t_def(
"",
"",
"VMPVMP"//ynum,
"",
"T",
"SCALAR" )
446 CALL
gltools_wrivai( tznam,tpglt%sit_d(jk,:,:)%vmp,kunit=nsavlu,kdbl=1 )
452 IF ( ydo )
CLOSE(nsavlu)
459 1010
FORMAT( 1x,a7,e12.5,4x,e12.5,4x,e12.5 )
460 1020
FORMAT(
"Category",i2.2,
":" )