75 real(r8),
pointer :: bvec(:,:)
76 real(r8),
pointer :: rvector(:,:)
77 real(r8),
pointer :: sworkd(:)
78 real(r8),
pointer :: resid(:)
80 real(r8),
pointer :: ad_work(:)
82# if defined STOCHASTIC_OPT && defined HESSIAN_SO
83 real(r8),
pointer :: my_state(:)
86 real(r8),
pointer :: so_state(:,:)
96 logical,
allocatable ::
pick(:,:)
110 integer,
allocatable ::
ido(:)
111 integer,
allocatable ::
info(:)
128 real(r8),
allocatable ::
norm(:,:)
146 common /i_aupd/
iaupd
147# ifdef DOUBLE_PRECISION
148 common /idaitr/
iaitr
149 common /ldaitr/
laitr
150 common /rdaitr/
raitr
151 common /idaup2/
iaup2
152 common /ldaup2/
laup2
153 common /rdaup2/
raup2
155 common /isaitr/
iaitr
156 common /lsaitr/
laitr
157 common /rsaitr/
raitr
158 common /isaup2/
iaup2
159 common /lsaup2/
laup2
160 common /rsaup2/
raup2
193 integer,
allocatable :: mstr(:), mend(:)
195 real(r8),
parameter :: inival = 0.0_r8
213# if defined AFT_EIGENMODES || defined FT_EIGENMODES
221# if defined OPT_PERTURBATION
223# elif defined HESSIAN_SV
225# elif defined HESSIAN_FSV
227# elif defined FORCING_SV
229# elif defined STOCHASTIC_OPT
231# elif defined SO_SEMI
233# elif defined FT_EIGENMODES || defined AFT_EIGENMODES
246# if defined HESSIAN_FSV || defined HESSIAN_SO || defined HESSIAN_SV
262 allocate (
storage(ng) % Bvec(mstr(ng):mend(ng),
ncv) )
265 allocate (
storage(ng) % Rvector(mstr(ng):mend(ng),
nev+1) )
266 dmem(ng)=
dmem(ng)+real((mend(ng)-mstr(ng))*(
nev+1),r8)
271 allocate (
storage(ng) % resid(mstr(ng):mend(ng)) )
272 dmem(ng)=
dmem(ng)+real(mend(ng)-mstr(ng),r8)
274# ifdef STOCHASTIC_OPT
279# if defined STOCHASTIC_OPT && defined HESSIAN_SO
285 allocate (
storage(ng) % so_state(mstr(ng):mend(ng),
nsemi(ng)) )
330 DO i=mstr(ng),mend(ng)
331 storage(ng) % Bvec(i,j) = inival
338 DO i=mstr(ng),mend(ng)
339 storage(ng) % Rvector(i,j) = inival
342 DO i=mstr(ng),mend(ng)
343 storage(ng) % resid(i) = inival
345# ifdef STOCHASTIC_OPT
347 storage(ng) % ad_Work(i) = inival
350# if defined STOCHASTIC_OPT && defined HESSIAN_SO
352 storage(ng) % my_state(i) = inival
357 DO i=mstr(ng),mend(ng)
358 storage(ng) % so_state(i,j) = inival
374 storage(ng) % SworkD(i) = inival
399 integer,
intent(in) :: ng
401# ifdef SUBOBJECT_DEALLOCATION
408 IF (
associated(
storage(ng)%Bvec))
THEN
409 deallocate (
storage(ng)%Bvec )
412 IF (
associated(
storage(ng)%Rvector))
THEN
413 deallocate (
storage(ng)%Rvector )
416 IF (
associated(
storage(ng)%SworkD))
THEN
417 deallocate (
storage(ng)%SworkD )
420 IF (
associated(
storage(ng)%resid))
THEN
421 deallocate (
storage(ng)%resid )
424# ifdef STOCHASTIC_OPT
425 IF (
associated(
storage(ng)%ad_Work))
THEN
426 deallocate (
storage(ng)%ad_Work )
430# if defined STOCHASTIC_OPT && defined HESSIAN_SO
431 IF (
associated(
storage(ng)%my_state))
THEN
432 deallocate (
storage(ng)%my_state )
437 IF (
associated(
storage(ng)%so_state))
THEN
438 deallocate (
storage(ng)%so_state )
455 IF (
allocated(mstr))
deallocate ( mstr )
456 IF (
allocated(mend))
deallocate ( mend )
457 IF (
allocated(
ido))
deallocate (
ido )
458 IF (
allocated(
info))
deallocate (
info )
462 IF (
allocated(
pick))
deallocate (
pick )
463 IF (
allocated(
norm))
deallocate (
norm )
integer, dimension(:), allocatable nstate
integer, dimension(:), allocatable mstate
integer, dimension(:), allocatable nstr
real(r8), dimension(:), allocatable dmem
integer, dimension(:), allocatable nsemi
integer, dimension(:), allocatable nend
integer, dimension(:), allocatable ntimes
integer, dimension(:), allocatable nadj
real(r8), dimension(2) raup2
integer, dimension(8) iaup2
integer, dimension(:), allocatable ido
integer, dimension(20) iaupd
real(r8), dimension(:,:), allocatable rvaluei
real(r8), dimension(:,:), allocatable sworkl
integer, dimension(:,:), allocatable ipntr
real(r8), dimension(8) raitr
logical, dimension(5) laup2
real(r8), dimension(:,:), allocatable sworkev
type(t_storage), dimension(:), allocatable storage
real(r8), dimension(:,:), allocatable norm
integer, dimension(:), allocatable info
subroutine, public allocate_storage
real(r8), dimension(:), allocatable swork
integer, dimension(:,:), allocatable iparam
logical, dimension(:,:), allocatable pick
real(r8), dimension(:), pointer sworkr
real(r8), dimension(:,:), allocatable rvaluer
subroutine, public deallocate_storage(ng)
integer, dimension(:), allocatable lworkd
integer, dimension(8) iaitr
logical, dimension(5) laitr