16 use deallocate_structures
19 type (type_equilibrium
),
pointer :: euitm_equilibrium_in(:)
20 type (type_equilibrium
),
pointer :: euitm_equilibrium_out(:)
21 type (type_param
),
save :: code_parameters
22 logical,
save :: first = .true.
23 integer,
save :: ncall = 0
24 character*32 :: filename =
'EQ_######'
25 integer(itm_i4) :: i, iargc
28 integer :: shot, run_in, run_out
32 subroutine helena (euitm_equilibrium_in, euitm_equilibrium_out, in_path, code_parameters)
35 type (type_equilibrium
),
pointer :: euitm_equilibrium_in(:)
36 type (type_equilibrium
),
pointer :: euitm_equilibrium_out(:)
37 character(len = 132),
optional :: in_path
38 type (type_param
) :: code_parameters
43 write(*,*)
'shot, run_in, run_out and time missing'
44 stop
'error: missing filename'
48 call fill_param(code_parameters,
'XML/helena.xml',
'',
'XML/helena.xsd')
59 write(*,*)
'Processing ',shot,run_in,run_out,time
61 allocate(euitm_equilibrium_in(1))
64 CALL euitm_open(
'euitm', shot, run_in, idx)
65 CALL euitm_get_slice(idx,
'equilibrium', euitm_equilibrium_in(1), time, 1)
70 CALL
helena(euitm_equilibrium_in, euitm_equilibrium_out, code_parameters=code_parameters)
73 CALL euitm_create(
'euitm', shot, run_out, shot, run_in, idx)
74 euitm_equilibrium_out(1)%time = time
75 write(*,*)
'euitm_put_non_timed: equilibrium', euitm_equilibrium_out(1)%time
76 call euitm_put_non_timed(idx,
"equilibrium",euitm_equilibrium_out(1))
77 write(*,*)
'euitm_put_slice: equilibrium', euitm_equilibrium_out(1)%time
78 call euitm_put_slice(idx,
"equilibrium",euitm_equilibrium_out(1))
84 write(filename(4:9),
'(I6.6)') 1
85 call open_write_file(1, trim(filename)//
'.OUT2')
86 call write_cpo(euitm_equilibrium_out(1),
'equilibrium')
89 call deallocate_cpo(euitm_equilibrium_in)
90 call deallocate_cpo(euitm_equilibrium_out)
subroutine helena(equilibrium_in, equilibrium_out, in_path, code_parameters)
program run_helena_cpo
Run helena based on a CPO stored in ascii format.