Skip to content

WdmEnt: Library for WDM Access

PaulDudaRESPEC edited this page Mar 28, 2017 · 19 revisions

Purpose

The purpose of this library is to provide a 64-bit compatible DLL for communication between an external program and WDM files. The DLL includes the entry points described below. Source code for the DLL is available here: https://github.com/respec/FORTRAN/tree/master/f90apps/WdmEnt

Test sequences are being developed for exercising all the entry points of the DLL from a dotNet application as well as from a Fortran program. For dotNet testing code, see https://github.com/respec/FORTRAN/tree/master/vbDrivers/WdmEntDriverVB. For Fortran testing code, see https://github.com/respec/FORTRAN/tree/master/f90apps/WdmEntDriverFortran.

Compiling Procedures

The WdmEnt DLL is rebuilt using the Visual Studio solution file https://github.com/respec/FORTRAN/blob/master/f90apps/WdmEnt/WdmEnt15.sln. This solution compiles both debug and release versions of Win32 and x64 versions of WdmEnt.dll.

This solution uses the Intel FORTRAN Compiler from Intel Parallel Studio 2017. For distribution, the Intel redistributable files libifcoremd.dll and libmmd.dll are required along with the WdmEnt.dll.

Entry Points

F90_MSG (atcWDM) calls LOG_MSG, has entry point

F90_W99OPN (atcWDM) open unit 99 for writing messages

F90_W99CLO (atcWDM) close unit 99 for writing messages

F90_WDMOPN (IHM) given a wdm file name and a unit number, open it if it isn't already open

F90_WDMCLO (IHM) close a wdm file with a fortran close statement, mark records in buffer as not usable

F90_WDBOPN (IHM) given a wdm file name and a read-only flag, open the wdm file

F90_WDBOPNR (atcWDM) subroutine version of above, returns wdm file unit number and a retcod

F90_WDFLCL (atcWDM) close a wdm file using wdm code to remove it from the wdm buffer

F90_INQNAM (atcWDM) check to see if a file name is open

F90_WDDSNX (atcWDM) search for the next data set greater than or equal to dsn

F90_WDCKDT (atcWDM) check data set for existance and type

F90_WDTGET (atcWDM) get timeseries information from wdm file

F90_WDTPUT (IHM, atcWDM) put timeseries data into a wdm file

F90_WTFNDT (atcWDM) determine starting and ending dates of data in data set

F90_WDBSGC (atcWDM) get value of character search attribute for a dsn

F90_WDBSGI (IHM, atcWDM) get value of integer search attribute for a dsn

F90_WDBSGR (atcWDM) get value of real search attribute for a dsn

F90_WDBSAC (atcWDM) adds (or modifies) character search attribute on given dsn

F90_WDBSAI (atcWDM) adds (or modifies) integer search attribute on given dsn

F90_WDBSAR (atcWDM) adds (or modifies) real search attribute on given dsn

F90_WDLBAX (atcWDM) add a new data-set label, but no search attributes or data, sets pointers

F90_WDDSDL (atcWDM) delete a data set from the WDMSFL with no user interaction

F90_WDSAGY (atcWDM) gets general detail information about specified attribute

F90_GETATT (atcWDM) calls wdgtat to retrieve search attributes by position in label

Internal Functions

LOG_MSG write message to error.fil

INQUIRE_NAME given a file name, return its unit number if it is open, else return first available unit number

GET_WDM_FUN given a file unit number, return this one if it isn't in use, else the next available