90 integer,
intent(in) :: ng, model
94 integer,
parameter :: natt = 25
96 integer :: mstatedim, ncvdim, sworkddim, sworkldim
97 integer :: char1dim, char2dim, iaitrdim, iaupddim, iaup2dim
98 integer :: iparamdim, ipntrdim, laitrdim, laup2dim, raitrdim
100 integer :: i, j, status, varid
101 integer :: dimids(
ndimid), vardim(2)
105 character (len=256) :: ncname
106 character (len=MaxLen) :: vinfo(natt)
108 character (len=*),
parameter :: myfile = &
109 & __FILE__//
", def_gst_nf90"
122 WRITE (
stdout,10) ng, trim(ncname)
124 WRITE (
stdout,20) ng, trim(ncname)
132 define :
IF (.not.
lrstgst)
THEN
143 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'Mstate', &
147 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'NCV', &
151 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'LworkD', &
152 & 3*
mstate(ng), sworkddim)
155 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'LworkL', &
159 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'iparam', &
160 &
SIZE(
iparam), iparamdim)
163 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'ipntr', &
164 &
SIZE(
ipntr), ipntrdim)
167 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'iaupd', &
168 &
SIZE(
iaupd), iaupddim)
171 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'laitr', &
172 &
SIZE(
laitr), laitrdim)
175 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'iaitr', &
176 &
SIZE(
iaitr), iaitrdim)
179 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'raitr', &
180 &
SIZE(
raitr), raitrdim)
183 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'laup2', &
184 &
SIZE(
laup2), laup2dim)
187 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'iaup2', &
188 &
SIZE(
iaup2), iaup2dim)
191 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'raup2', &
192 &
SIZE(
raup2), raup2dim)
195 status=
def_dim(ng, model,
gst(ng)%ncid, ncname,
'char2', &
203 CALL def_info (ng, model,
gst(ng)%ncid, ncname, dimids)
224 vinfo( 2)=
'number of eigenvalues to compute'
225 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
226 & 1, (/0/), aval, vinfo, ncname, &
227 & setparaccess = .false.)
233 vinfo( 2)=
'number of Lanczos vectors to compute'
234 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
235 & 1, (/0/), aval, vinfo, ncname, &
236 & setparaccess = .false.)
242 vinfo( 2)=
'total size of eigenvalue problem'
243 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
244 & 1, (/0/), aval, vinfo, ncname, &
245 & setparaccess = .false.)
251 vinfo( 2)=
'iteration number'
252 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
253 & 1, (/0/), aval, vinfo, ncname, &
254 & setparaccess = .false.)
260 vinfo( 2)=
'reverse communications flag'
261 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
262 & 1, (/0/), aval, vinfo, ncname, &
263 & setparaccess = .false.)
269 vinfo( 2)=
'information and error flag'
270 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
271 & 1, (/0/), aval, vinfo, ncname, &
272 & setparaccess = .false.)
278 vinfo( 2)=
'eigenvalue problem type'
279 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_char, &
280 & 1, (/0/), aval, vinfo, ncname, &
281 & setparaccess = .false.)
287 vinfo( 2)=
'Ritz eigenvalues to compute'
288 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_char, &
289 & 1, (/char2dim/), aval, vinfo, ncname, &
290 & setparaccess = .false.)
296 vinfo( 2)=
'form of basis function'
297 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_char, &
298 & 1, (/0/), aval, vinfo, ncname, &
299 & setparaccess = .false.)
305 vinfo( 2)=
'relative accuracy of computed Ritz values'
307 & 1, (/0/), aval, vinfo, ncname, &
308 & setparaccess = .false.)
314 vinfo( 2)=
'eigenproblem parameters'
315 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
316 & 1, (/iparamdim/), aval, vinfo, ncname, &
317 & setparaccess = .false.)
323 vinfo( 2)=
'pointers to mark starting location in work arrays'
324 status=
def_var(ng, model,
gst(ng)%ncid,varid, nf90_int, &
325 & 1, (/ipntrdim/), aval, vinfo, ncname, &
326 & setparaccess = .false.)
332 vinfo( 2)=
'ARPACK internal integer parameters to _aupd routines'
333 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
334 & 1, (/iaupddim/), aval, vinfo, ncname, &
335 & setparaccess = .false.)
341 vinfo( 2)=
'ARPACK internal integer parameters to _aitr routines'
342 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
343 & 1, (/iaitrdim/), aval, vinfo, ncname, &
344 & setparaccess = .false.)
350 vinfo( 2)=
'ARPACK internal integer parameters to _aup2 routines'
351 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
352 & 1, (/iaup2dim/), aval, vinfo, ncname, &
353 & setparaccess = .false.)
359 vinfo( 2)=
'ARPACK internal logical parameters to _aitr routines'
362 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
363 & 1, (/laitrdim/), aval, vinfo, ncname, &
364 & setparaccess = .false.)
370 vinfo( 2)=
'ARPACK internal logical parameters to _aup2 routines'
373 status=
def_var(ng, model,
gst(ng)%ncid, varid, nf90_int, &
374 & 1, (/laup2dim/), aval, vinfo, ncname, &
375 & setparaccess = .false.)
381 vinfo( 2)=
'ARPACK internal real parameters to _aitr routines'
383 & 1, (/raitrdim/), aval, vinfo, ncname, &
384 & setparaccess = .false.)
390 vinfo( 2)=
'ARPACK internal real parameters to _aup2 routines'
392 & 1, (/raup2dim/), aval, vinfo, ncname, &
393 & setparaccess = .false.)
399 vinfo( 2)=
'Lanczos/Arnoldi basis vectors'
403 & 2, vardim, aval, vinfo, ncname)
409 vinfo( 2)=
'eigenproblem residual vector'
411 & 1, (/mstatedim/), aval, vinfo, ncname)
417 vinfo( 2)=
'reverse communications state array'
419 & 1, (/sworkddim/), aval, vinfo, ncname)
425 vinfo( 2)=
'eigenproblem work array'
427 & 1, (/sworkldim/), aval, vinfo, ncname)
439 10
FORMAT (/,2x,
'DEF_GST_NF90 - creating checkpointing file,', &
440 & t56,
'Grid ',i2.2,
': ',a)
441 20
FORMAT (/,2x,
'DEF_GST_NF90 - inquiring checkpointing file,', &
442 & t56,
'Grid ',i2.2,
': ',a)
443 30
FORMAT (/,
' DEF_GST_NF90 - unable to create checkpointing', &
444 &
' NetCDF file: ',a)
459 integer,
intent(in) :: ng, model
463 integer,
parameter :: natt = 25
465 integer :: mstatedim, ncvdim, sworkddim, sworkldim
466 integer :: char1dim, char2dim, iaitrdim, iaupddim, iaup2dim
467 integer :: iparamdim, ipntrdim, laitrdim, laup2dim, raitrdim
469 integer :: i, j, status
470 integer :: dimids(
ndimid), vardim(2)
474 character (len=256) :: ncname
475 character (len=MaxLen) :: vinfo(natt)
477 character (len=*),
parameter :: myfile = &
478 & __FILE__//
", def_gst_pio"
480 TYPE (var_desc_t) :: vardesc
493 WRITE (
stdout,10) ng, trim(ncname)
495 WRITE (
stdout,20) ng, trim(ncname)
503 define :
IF (.not.
lrstgst)
THEN
515 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'Mstate', &
519 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'NCV', &
523 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'LworkD', &
524 & 3*
mstate(ng), sworkddim)
527 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'LworkL', &
531 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'iparam', &
532 &
SIZE(
iparam), iparamdim)
535 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'ipntr', &
536 &
SIZE(
ipntr), ipntrdim)
539 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'iaupd', &
540 &
SIZE(
iaupd), iaupddim)
543 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'laitr', &
544 &
SIZE(
laitr), laitrdim)
547 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'iaitr', &
548 &
SIZE(
iaitr), iaitrdim)
551 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'raitr', &
552 &
SIZE(
raitr), raitrdim)
555 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'laup2', &
556 &
SIZE(
laup2), laup2dim)
559 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'iaup2', &
560 &
SIZE(
iaup2), iaup2dim)
563 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'raup2', &
564 &
SIZE(
raup2), raup2dim)
567 status=
def_dim(ng, model,
gst(ng)%pioFile, ncname,
'char2', &
575 CALL def_info (ng, model,
gst(ng)%pioFile, ncname, dimids)
596 vinfo( 2)=
'number of eigenvalues to compute'
597 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
598 & 1, (/0/), aval, vinfo, ncname, &
599 & setparaccess = .false.)
605 vinfo( 2)=
'number of Lanczos vectors to compute'
606 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
607 & 1, (/0/), aval, vinfo, ncname, &
608 & setparaccess = .false.)
614 vinfo( 2)=
'total size of eigenvalue problem'
615 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
616 & 1, (/0/), aval, vinfo, ncname, &
617 & setparaccess = .false.)
623 vinfo( 2)=
'iteration number'
624 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
625 & 1, (/0/), aval, vinfo, ncname, &
626 & setparaccess = .false.)
632 vinfo( 2)=
'reverse communications flag'
633 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
634 & 1, (/0/), aval, vinfo, ncname, &
635 & setparaccess = .false.)
641 vinfo( 2)=
'information and error flag'
642 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
643 & 1, (/0/), aval, vinfo, ncname, &
644 & setparaccess = .false.)
650 vinfo( 2)=
'eigenvalue problem type'
651 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_char, &
652 & 1, (/0/), aval, vinfo, ncname, &
653 & setparaccess = .false.)
659 vinfo( 2)=
'Ritz eigenvalues to compute'
660 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_char, &
661 & 1, (/char2dim/), aval, vinfo, ncname, &
662 & setparaccess = .false.)
668 vinfo( 2)=
'form of basis function'
669 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_char, &
670 & 1, (/0/), aval, vinfo, ncname, &
671 & setparaccess = .false.)
677 vinfo( 2)=
'relative accuracy of computed Ritz values'
679 & 1, (/0/), aval, vinfo, ncname, &
680 & setparaccess = .false.)
686 vinfo( 2)=
'eigenproblem parameters'
687 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
688 & 1, (/iparamdim/), aval, vinfo, ncname, &
689 & setparaccess = .false.)
695 vinfo( 2)=
'pointers to mark starting location in work arrays'
696 status=
def_var(ng, model,
gst(ng)%pioFile,vardesc, pio_int, &
697 & 1, (/ipntrdim/), aval, vinfo, ncname, &
698 & setparaccess = .false.)
704 vinfo( 2)=
'ARPACK internal integer parameters to _aupd routines'
705 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
706 & 1, (/iaupddim/), aval, vinfo, ncname, &
707 & setparaccess = .false.)
713 vinfo( 2)=
'ARPACK internal integer parameters to _aitr routines'
714 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
715 & 1, (/iaitrdim/), aval, vinfo, ncname, &
716 & setparaccess = .false.)
722 vinfo( 2)=
'ARPACK internal integer parameters to _aup2 routines'
723 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
724 & 1, (/iaup2dim/), aval, vinfo, ncname, &
725 & setparaccess = .false.)
731 vinfo( 2)=
'ARPACK internal logical parameters to _aitr routines'
734 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
735 & 1, (/laitrdim/), aval, vinfo, ncname, &
736 & setparaccess = .false.)
742 vinfo( 2)=
'ARPACK internal logical parameters to _aup2 routines'
745 status=
def_var(ng, model,
gst(ng)%pioFile, vardesc, pio_int, &
746 & 1, (/laup2dim/), aval, vinfo, ncname, &
747 & setparaccess = .false.)
753 vinfo( 2)=
'ARPACK internal real parameters to _aitr routines'
755 & 1, (/raitrdim/), aval, vinfo, ncname, &
756 & setparaccess = .false.)
762 vinfo( 2)=
'ARPACK internal real parameters to _aup2 routines'
764 & 1, (/raup2dim/), aval, vinfo, ncname, &
765 & setparaccess = .false.)
771 vinfo( 2)=
'Lanczos/Arnoldi basis vectors'
775 & 2, vardim, aval, vinfo, ncname)
781 vinfo( 2)=
'eigenproblem residual vector'
783 & 1, (/mstatedim/), aval, vinfo, ncname)
789 vinfo( 2)=
'reverse communications state array'
791 & 1, (/sworkddim/), aval, vinfo, ncname)
797 vinfo( 2)=
'eigenproblem work array'
799 & 1, (/sworkldim/), aval, vinfo, ncname)
811 10
FORMAT (/,2x,
'DEF_GST_PIO - creating checkpointing file,', &
812 & t56,
'Grid ',i2.2,
': ',a)
813 20
FORMAT (/,2x,
'DEF_GST_PIO - inquiring checkpointing file,', &
814 & t56,
'Grid ',i2.2,
': ',a)
815 30
FORMAT (/,
' DEF_GST_PIO - unable to create checkpointing', &
816 &
' NetCDF file: ',a)