...
cd $TUTORIAL_DIR/cpo_basics/fortran
Handling CPOs: get() vs. getSlice() |
---|
Code Block |
---|
title | $TUTORIAL_DIR/cpo_basics/fortran/get_cpo_array.f90 |
---|
linenumbers | true |
---|
| program diagnostic
use euitm_schemas
use euitm_routines
implicit none
integer :: idx, i, arraySize
type (type_equilibrium), pointer :: eqArray(:) ! <= Array !!!
call euitm_open('euitm', 14, 4, idx)
call euitm_get(idx, 'equilibrium', eqArray)
arraySize = size(eqArray)
write (*,*) "Number of slices: ", arraySize
do i=1, arraySize
write (*,*) "Time: ", eqArray(i)%time
write (*,*) "Value of r: ", eqArray(i)%eqgeometry%boundary(1)%r(1)
write (*,*) "Value of z: ", eqArray(i)%eqgeometry%boundary(1)%z(1)
enddo
call euitm_close(idx)
end program |
| Code Block |
---|
title | $TUTORIAL_DIR/cpo_basics/fortran/get_cpo_slices.f90 |
---|
linenumbers | true |
---|
| program diagnostic
use euitm_schemas
use euitm_routines
implicit none
integer :: idx, i, arraySize
type (type_equilibrium) :: equilibrium
real(EUITM_R8), pointer :: timeVector(:)
real(EUITM_R8) :: time
call euitm_open('euitm', 14, 4, idx)
call euitm_get_times(idx, 'equilibrium',timeVector)
arraySize = size(timeVector)
write (*,*) "Number of slices: ", arraySize
write (*,*) "Time vector: ", timeVector
do i = 1, arraySize
time = timeVector(i)
call euitm_get_slice(idx, 'equilibrium', equilibrium, time, 1)
write (*,*) "Time [", time, "]: ", equilibrium%time
write (*,*) "Value of r: ", equilibrium%eqgeometry%boundary(1)%r(1)
write (*,*) "Value of z: ", equilibrium%eqgeometry%boundary(1)%z(1)
enddo
call euitm_close(idx)
end program |
|
3. Open GetSlice.f90 file
vi GetSlice.f90
...