1.1.1. 06.2.2.2 "put" and "putSlice" functions
put | putSlice |
---|---|
IMAS Fortran :: put program test use ids_schemas use ids_routines implicit none type (ids_core_profiles) :: ids ! <= IDS object character(len=3) :: treename = 'ids' character(len=20) :: database = 'test' integer :: shot = 12 integer :: run = 22 character(len=20) :: usr character(len=20) :: imasVersion integer :: idx integer :: i ! Gets user name and data version call get_environment_variable("USER",usr) call get_environment_variable("IMAS_VERSION", imasVersion) ! Open a database call imas_create_env(treename, shot, run, -1,-1, idx, usr, database, imasVersion) ! Mandatory to define this property ids%ids_properties%homogeneous_time = IDS_TIME_MODE_HOMOGENEOUS allocate(ids%ids_properties%comment(1)) ids%ids_properties%comment(1) = 'IDS stored by put (FORTRAN)' ! IDS structure allocation - vectors of size N (!) allocate(ids%time(10)) allocate(ids%global_quantities%ip(10)) ! --------- THE LOOP ----------------- do i=1, 10 ! Do not forget to set-up time!! ids%time(i) = i ! Setting values of data ids%global_quantities%ip(i) = 2*i enddo ! --------- THE LOOP ----------------- ! Save data in the database call ids_put(idx, 'core_profiles', ids) ! Cleaning up call ids_deallocate(ids) ! Close a pulse file call imas_close(idx) end program | IMAS Fortran :: putSlice program test use ids_schemas use ids_routines implicit none type (ids_core_profiles) :: ids ! <= IDS object character(len=3) :: treename = 'ids' character(len=20) :: database = 'test' integer :: shot = 12 integer :: run = 23 character(len=20) :: usr character(len=20) :: imasVersion integer :: idx integer :: i ! Gets user name and data version call get_environment_variable("USER",usr) call get_environment_variable("IMAS_VERSION", imasVersion) ! Open a database call imas_create_env(treename, shot, run, -1,-1, idx, usr, database, imasVersion) ! Mandatory to define this property ids%ids_properties%homogeneous_time = IDS_TIME_MODE_HOMOGENEOUS ! Time NOT dependent data allocate(ids%ids_properties%comment(1)) ids%ids_properties%comment(1) = 'IDS stored by put_slice (FORTRAN)' ! IDS structure allocation - vectors of size 1 (!) allocate(ids%time(1)) allocate(ids%global_quantities%ip(1)) ! --------- THE LOOP ----------------- do i=1, 10 ! Do not forget to set-up time!! ids%time(1) = i ! Setting values of data ids%global_quantities%ip = 2*i ! Save data in the database if (i == 1) then call ids_put(idx, 'core_profiles', ids) else call ids_put_slice(idx, 'core_profiles', ids) end if enddo ! --------- THE LOOP ----------------- ! Cleaning up call ids_deallocate(ids) ! Close a pulse file call imas_close(idx) end program |
1.1.2. 06.2.2.3 "get" and "getSlice" functions
get | getSlice |
---|---|
IMAS Fortran :: get program test use ids_schemas use ids_routines implicit none type (ids_core_profiles) :: ids ! <= IDS object character(len=3) :: treename = 'ids' character(len=20) :: database = 'test' integer :: shot = 12 integer :: run = 22 character(len=20) :: usr character(len=20) :: imasVersion integer :: idx integer :: i ! Gets user name and data version call get_environment_variable("USER",usr) call get_environment_variable("IMAS_VERSION", imasVersion) ! Open a database call imas_open_env(treename, shot, run, idx, usr, database, imasVersion) ! Get data call ids_get(idx, 'core_profiles', ids) write (*,*) "Time : ", ids%time write (*,*) "Value: ", ids%global_quantities%ip ! Close a pulse file call imas_close(idx) end program | IMAS Fortran :: getSlice program test use ids_schemas use ids_routines implicit none type (ids_core_profiles) :: ids ! <= IDS object character(len=3) :: treename = 'ids' character(len=20) :: database = 'test' integer :: shot = 12 integer :: run = 22 character(len=20) :: usr character(len=20) :: imasVersion integer :: idx integer :: i ! Gets user name and data version call get_environment_variable("USER",usr) call get_environment_variable("IMAS_VERSION", imasVersion) ! Open a database call imas_open_env(treename, shot, run, idx, usr, database, imasVersion) ! Get data call ids_get_slice(idx, 'core_profiles', ids, 3.0, 1) write (*,*) "Time : ", ids%time write (*,*) "Value : ", ids%global_quantities%ip ! Memory clean-up call ids_deallocate(ids) ! Close a pulse file call imas_close(idx) end program |
Building the code
F90_ifort=ifort COPTS_ifort = -r8 `pkg-config imas-ifort --cflags` LIBS_ifort=`pkg-config imas-ifort --libs` all: ids_get.exe ids_put.exe ids_getSlice.exe ids_putSlice.exe %.exe: %.f90 $(F90_ifort) $(COPTS_ifort) -o $@ $< $(LIBS_ifort) clean: rm -f *.o *.exe