gtool5 Fortran 90/95 ライブラリ 1.0.0-rc5
English
Loading...
Searching...
No Matches
gtvartmpnam.f90
Go to the documentation of this file.
1!> @file gtvartmpnam.f90
2!>
3!> @author Eizi TOYODA, Yasuhiro MORIKAWA
4!> @copyright Copyright (C) GFD Dennou Club, 2000-2026. All rights reserved. <br/>
5!> License is BSD-2-Clause. See [COPYRIGHT](@ref COPYRIGHT) in detail
6!>
7!> @en
8!> @brief Auto-create variable name
9!>
10!> This subroutine is provided as gtdata_generic#GTDataTmpNam
11!> through gtdata_generic.
12!> @enden
13!>
14!> @ja
15!> @brief 変数名の自動作成
16!>
17!> このサブルーチンは gtdata_generic から gtdata_generic#GTDataTmpNam
18!> として提供されます。
19!> @endja
20!>
21
22!>
23!> @en
24!> @brief Create unique variable name
25!>
26!> Creates file@base from filename file and variable name base,
27!> returns in result.
28!> If file is empty, gtool.nc is used as the filename.
29!> If base is empty, tmp is used as the variable name.
30!> @param[in] file Filename
31!> @param[in] base Base variable name
32!> @param[out] result Generated unique variable URL
33!> @enden
34!>
35!> @ja
36!> @brief 一意な変数名を作成
37!>
38!> ファイル名 file と変数名 base から file@base を作成して result に返す。
39!> file が空文字の場合は gtool.nc がファイル名として代用され、
40!> base が空文字の場合は tmp が変数名として代用される。
41!> @param[in] file ファイル名
42!> @param[in] base ベース変数名
43!> @param[out] result 生成された一意な変数URL
44!> @endja
45!>
46subroutine gtvartmpnam(file, base, result)
47 use dc_types, only: string
48 use dc_url, only: urlmerge
49 use gtdata_generic, only: open, close
50 use gtdata_types, only: gt_variable
51 implicit none
52 character(len = *), intent(in):: file
53 character(len = *), intent(in):: base
54 character(len = *), intent(out):: result
55 type(gt_variable):: var
56 integer:: n
57 logical:: failed
58 character(len = STRING):: fnam, vnam, vnambase
59continue
60 if (file == "") then
61 fnam = "gtool.nc"
62 else
63 fnam = file
64 endif
65 if (base == "") then
66 vnambase = "tmp"
67 else
68 vnambase = base
69 endif
70 n = 0
71 do
72 n = n + 1
73 ! compatibility note (2001-12-02, TOYODA Eizi)
74 ! dc_string の toChar を使いたいのだが FQS Fortran が失敗する
75 write(unit=vnam, fmt="(i32)") n
76 vnam = trim(vnambase) // trim(adjustl(vnam))
77 result = urlmerge(file=fnam, var=vnam)
78 call open(var, result, writable=.false., err=failed)
79 if (failed) return
80 call close(var)
81 enddo
82end subroutine gtvartmpnam
subroutine gtvartmpnam(file, base, result)
種別型パラメタを提供します。
Definition dc_types.f90:55
integer, parameter, public string
文字列を保持する 文字型変数の種別型パラメタ
Definition dc_types.f90:137
変数 URL の文字列解析
Definition dc_url.f90:61