Path: | src/anvarcreated.f90 |
Last Update: | Fri Aug 05 00:58:08 JST 2005 |
Copyright (C) GFD Dennou Club, 2000. All rights reserved.
var : | type(an_variable), intent(out) |
url : | character(len = *), intent(in) |
xtype : | character(len = *), intent(in) |
length : | integer, intent(in) |
overwrite : | logical, intent(in), optional |
err : | logical, intent(out), optional |
長さ length の次元変数を作成する。
subroutine ANVarCreateD(var, url, xtype, length, overwrite, err) implicit none type(an_variable), intent(out):: var character(len = *), intent(in):: url character(len = *), intent(in):: xtype integer, intent(in):: length logical, intent(in), optional:: overwrite logical, intent(out), optional:: err type(an_variable_search):: ent character(len = string):: filename, varname integer:: stat integer:: nc_xtype ! ! --- ファイルを用意 --- call UrlSplit(url, file=filename, var=varname) call ANFileOpen(ent%fileid, filename, stat=stat, writable=.TRUE., overwrite=overwrite) if (stat /= NF_NOERR) goto 999 stat = ANFileDefineMode(ent%fileid) if (stat /= NF_NOERR) goto 999 ! ! --- 型の決定 --- nc_xtype = NF_REAL if (strieq(xtype, "double") .or. strieq(xtype, "DOUBLEPRECISION")) then nc_xtype = NF_DOUBLE endif if (strieq(xtype, "int") .or. strieq(xtype, "INTEGER")) then nc_xtype = NF_INT endif ! ! --- 次元変数の作成 --- stat = nf_def_dim(ent%fileid, trim(varname), len=length, dimid=ent%dimid) if (stat /= NF_NOERR) goto 999 stat = nf_def_var(ent%fileid, trim(varname), xtype=nc_xtype, ndims=1, dimids=(/ent%dimid/), varid=ent%varid) if (stat /= NF_NOERR) goto 999 ! stat = vtable_add(var, ent) if (stat /= NF_NOERR) goto 999 call StoreError(NF_NOERR, 'ANVarCreateD', err) return 999 continue call StoreError(stat, 'ANVarCreateD', err) var = an_variable(-1) end subroutine