gtool5 Fortran 90/95 Library 1.0.0-rc5
日本語
Loading...
Searching...
No Matches
Public Member Functions | List of all members
dc_url::urlsearchiorange Interface Reference

Public Member Functions

character(len=string) function url_search_iorange (fullname, dimvar)
 

Detailed Description

Definition at line 88 of file dc_url.f90.

Member Function/Subroutine Documentation

◆ url_search_iorange()

character(len = string) function dc_url::urlsearchiorange::url_search_iorange ( character(len = *), intent(in)  fullname,
character(len = *), intent(in)  dimvar 
)

Get I/O range value for a dimension from variable URL

Gets the I/O range specification value for dimension dimvar from the variable URL fullname.

fullname is given either as a complete gtool4 variable URL or as just the I/O range specification part. dimvar is given as the dimension variable name contained in the I/O range specification part. If a dimension variable corresponding to dimvar exists, its value is returned. If a dimension variable corresponding to dimvar does not exist, an empty string is returned.

Parameters
[in]fullnameVariable URL or I/O range specification
[in]dimvarDimension variable name to search
Returns
I/O range value for the dimension (empty if not found)

Definition at line 345 of file dc_url.f90.

346 use dc_types, only: string
347 use dc_string, only: split
348 character(len = *), intent(in):: fullname
349 character(len = *), intent(in):: dimvar
350 character(len = STRING):: result
351 character(STRING):: file, var, attr, iorange
352 character(STRING), pointer :: ioranges_slice(:) => null()
353 integer :: i, eqpos, atmark
354 continue
355 result = ""
356 ! @ または ? が含まれているなら urlsplit で分離
357 atmark = index(fullname, gt_question)
358 if (atmark == 0) atmark = index(fullname, gt_atmark)
359 if (atmark /= 0) then
360 call urlsplit(fullname, file=file, var=var, attr=attr, iorange=iorange)
361 else
362 iorange = fullname
363 end if
364 call split(iorange, ioranges_slice, gt_comma)
365 do i = 1, size(ioranges_slice)
366 eqpos = index(ioranges_slice(i), gt_equal)
367 if (ioranges_slice(i)(1:eqpos-1) == trim(dimvar)) then
368 result = trim(ioranges_slice(i)(eqpos+1:))
369 exit
370 end if
371 end do
372 deallocate(ioranges_slice)
Handling character types.
Definition dc_string.f90:83
Provides kind type parameter values.
Definition dc_types.f90:55
integer, parameter, public string
Character length for string
Definition dc_types.f90:137

References dc_url::gt_atmark, dc_url::gt_comma, dc_url::gt_equal, dc_url::gt_question, and dc_types::string.


The documentation for this interface was generated from the following file: