1.1.1. 3.2.1 Changes
CHEAT SHEET | |
ITM | IMAS |
---|---|
use euitm_schemas | use ids_schemas |
use euitm_routines | use ids_routines |
type (type_<cpo_name>) :: cpo | type (ids_<ids_name>) :: ids |
type (type_<cpo_name>), pointer :: cpoArray(:) ! <= Array !!! | type (ids_<ids_name>) :: ids <== SINGLE OBJ !!! |
call euitm_create('euitm', shot, run, refShot, refRun, idx) | call imas_create('ids', shot, run, refShot, refRun, idx) |
call euitm_open('euitm', shot, run, idx) | call imas_open('ids', shot, run, idx) |
call euitm_put(idx, '<cpo_name>', cpoArray) <== ARRAY! | call ids_put(idx, '<ids_name>', ids) <== SINGLE OBJ |
call euitm_put_non_timed(idx,"<cpo_name>", cpo) | call ids_put_non_timed(idx,"<ids_name>",ids) |
call euitm_put_slice(idx, '<cpo_name>', cpo) | call ids_put_slice(idx, '<ids_name>', ids) |
call euitm_deallocate(cpoArray) | call ids_deallocate(ids) |
call euitm_close(idx) | call imas_close(idx) |
call euitm_enable_mem_cache(idx) | call imas_enable_mem_cache(idx) |
call euitm_disable_mem_cache(idx) | call imas_disable_mem_cache(idx) |
call euitm_flush_all(idx) | call imas_flush_all(idx) |
1.1.2. 3.2.2 CPO/IDS put
put() CPO vs IDS | |
---|---|
ITM program diagnostic use euitm_schemas use euitm_routines implicit none integer :: idx, i, arraySize type (type_equilibrium), pointer::cpoArray(:)<= ARRAY! ! Open a database call euitm_create('euitm', 11, 22, -1, -1, idx) ! CPO structure allocation allocate(cpoArray(10)) !SCALARS (!) do i=1, 10 cpoArray(i)%time = VALUE cpoArray(i)%x%y = VALUE enddo call euitm_put(idx, 'equilibrium', cpoArray) call euitm_deallocate(cpoArray) ! Close a pulse file call euitm_close(idx) end program | IMAS program diagnostic use ids_schemas use ids_routines implicit none integer :: idx, i type (ids_core_profiles): ids <= Single object !! ! Open a database call imas_create('ids', 11, 22, -1, -1, idx) ! Mandatory to define this property ids%ids_properties%homogeneous_time = 1 ! IDS structure allocation allocate(ids%time(10)) allocate(ids%x%y(10)) !SCALARS (!) do i=1, 10 ids%time(i) = VALUE ids%x%y(i) = VALUE enddo ! VECTORS ids%time = timeVector ids%x%y = valueVector call ids_put(idx, 'core_profiles', ids) call ids_deallocate(ids) ! Close a pulse file call imas_close(idx) end program |
1.1.3. 3.2.3 CPO/IDS putSlice
putSlice() CPO vs IDS | |
---|---|
ITM program diagnostic use euitm_schemas use euitm_routines implicit none integer :: idx, i type (type_equilibrium) :: cpo ! <= Single object !!! ! Open a database call euitm_create('euitm', 11, 22, -1, -1, idx) ! Time NOT dependent data allocate(cpo%datainfo%dataprovider(1)) cpo%datainfo%dataprovider="FI" call euitm_put_non_timed(idx, 'equilibrium', cpo) cpo%time = VALUE cpo%x%y = VALUE call euitm_put_slice(idx, 'equilibrium', cpo) call euitm_deallocate(cpoArray) ! Close a pulse file call euitm_close(idx) end program | IMAS program diagnostic use ids_schemas use ids_routines implicit none integer :: idx, i type (ids_core_profiles) :: ids ! <= Single object ! ! Open a database call imas_create('ids', 11, 22, -1, -1, idx) ! Mandatory to define this property ids%ids_properties%homogeneous_time = 1 ! Time NOT dependent data allocate(ids%ids_properties%comment(1)) ids%ids_properties%comment(1) = 'IDS put by put_slice' call ids_put_non_timed(idx,"core_profiles",ids) ! IDS structure allocation allocate(ids%time(1)) allocate(ids%x%y(1)) ids%time(1) = VALUE ids%x%y(1) = VALUE call ids_put_slice(idx, 'core_profiles', ids) call ids_deallocate(ids) ! Close a pulse file call imas_close(idx) end program |
1.1.4. 3.2.4 CPO/IDS get
get() CPO vs IDS | |
---|---|
ITM program diagnostic use euitm_schemas use euitm_routines implicit none integer :: idx, i, arraySize type (type_equilibrium), pointer :: cpoArray(:) <= Array !! ! Open a database call euitm_open('euitm', 14, 4, idx) ! Get data call euitm_get(idx, 'equilibrium', cpoArray) ! Check array size arraySize = size(cpoArray) ! <= array of CPOs ! SCALARS (!) do i=1, arraySize write (*,*) "Time : ", cpoArray(i)%time write (*,*) "Value: ", cpoArray(i)%x%y enddo ! Close a pulse file call euitm_close(idx) end program | IMAS program diagnostic use ids_schemas use ids_routines implicit none integer :: idx, i, arraySize type (ids_core_profiles) :: ids ! <= Single object !! ! Open a database call imas_open('ids', 14, 4, idx) ! Get data call ids_get(idx, 'core_profiles', ids) ! Check array size arraySize = size(ids%time) ! <= time vector ! SCALARS (!) do i=1, arraySize write (*,*) "Time : ", ids%time(i) write (*,*) "Value: ", ids%x%y(i) enddo ! VECTORS write (*,*) "Time : ", ids%time write (*,*) "Value: ", ids%x%y ! Close a pulse file call imas_close(idx) end program |
1.1.5. 3.2.5 CPO/IDS getSlice
getSlice() CPO vs IDS | |
---|---|
ITM program diagnostic ! UAL library use euitm_schemas use euitm_routines implicit none integer :: idx type (type_equilibrium) :: cpo ! Open a database call euitm_open('euitm', 11, 4, idx) ! Get data call euitm_get_slice(idx, 'equilibrium', cpo, 4.0, 1) write (*,*) "Time : ", cpo%time write (*,*) "Value : ", cpo%x%y ! Memory clean-up call euitm_deallocate(cpo) ! Close a pulse file call euitm_close(idx) end program | IMAS program diagnostic ! UAL library use ids_schemas use ids_routines implicit none integer :: idx type (ids_core_profiles) :: ids ! Open a database call imas_open('ids', 11, 22, idx) ! Get data call ids_get_slice(idx, 'core_profiles', ids, 4.0, 1) write (*,*) "Time : ", ids%time write (*,*) "Value : ", ids%x%y ! Memory clean-up call ids_deallocate(ids) ! Close a pulse file call imas_close(idx) end program |