!
!= 変数名の自動作成
!
! Authors:: Eizi TOYODA, Yasuhiro MORIKAWA
! Version:: $Id: gtdatatmpnam.f90,v 1.3 2006/01/15 07:10:30 morikawa Exp $
! Tag Name:: $Name: gt4f90io-20070116 $
! Copyright:: Copyright (C) GFD Dennou Club, 2000-2005. All rights reserved.
! License:: See COPYRIGHT[link:../../COPYRIGHT]
!
! 以下のサブルーチン、関数は gtdata_generic から gtdata_generic#GTDataTmpNam
! として提供されます。
!
subroutine GTDataTmpNam(file, base, result)
!
!== 変数名の自動作成
!
! ファイル名 *file* と変数名 *base* から file@base を
! 作成して *result* に返す。
! *file* が空文字の場合は gtool.nc がファイル名として代用され、
! *base* が空文字の場合は tmp が変数名として代用される。
!
use dc_types, only: STRING
use dc_url, only: UrlMerge
use gtdata_generic, only: Open, Close
use gtdata_types, only: GT_VARIABLE
implicit none
character(len = *), intent(in):: file
character(len = *), intent(in):: base
character(len = *), intent(out):: result
type(GT_VARIABLE):: var
integer:: n
logical:: failed
character(len = STRING):: fnam, vnam, vnambase
continue
if (file == "") then
fnam = "gtool.nc"
else
fnam = file
endif
if (base == "") then
vnambase = "tmp"
else
vnambase = base
endif
n = 0
do
n = n + 1
! compatibility note (2001-12-02, TOYODA Eizi)
! dc_string の toChar を使いたいのだが FQS Fortran が失敗する
write(unit=vnam, fmt="(i32)") n
vnam = trim(vnambase) // trim(adjustl(vnam))
result = UrlMerge(file=fnam, var=vnam)
call Open(var, result, writable=.FALSE., err=failed)
if (failed) return
call Close(var)
enddo
end subroutine GTDataTmpNam