Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

putputSlice


Code Block
titleIMAS Fortran :: put
linenumberstrue
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



Code Block
languagecpp
titleIMAS Fortran :: putSlice
linenumberstrue
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


...

getgetSlice


Code Block
titleIMAS Fortran :: get
linenumberstrue
program diagnostictest
    use ids_schemas
    use ids_routines
    implicit none

    integer :: idx, i, arraySize
    type (ids_core_profiles) :: ids ! <= SingleIDS 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    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%x%yids%global_quantities%ip
	
	    ! Close a pulse file
     callcall imas_close(idx)
end program



Code Block
titleIMAS Fortran :: getSlice
linenumberstrue
program diagnostictest
    ! UAL library
use ids_schemas
     useuse ids_schemasroutines
    implicit none


    usetype (ids_routines  _core_profiles) :: ids ! <= IDS object

    character(len=3)    :: treename = 'ids'
    implicit none
character(len=20)   :: database = 'test'
    integer             :: shot = 12
    integer             :: run idx= 22
    character(len=20)   :: usr
  type  (ids_core_profilescharacter(len=20)   :: ids 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('ids'treename, 11shot, 22run, idx)
, usr, database,  imasVersion)

    ! Get data
    call ids_get_slice(idx, 'core_profiles', ids, 43.0, 1)
            
    write (*,*) "TimeTime   : ", ids%time
    write (*,*) "Value : ", ids%x%yids%global_quantities%ip

	    ! Memory clean-up
    call ids_deallocate(ids)

    ! Close a pulse file
    call call imas_close(idx)
end program


...