Cex1.gms : Test expert level C API to read and write GDX

Description

Contributor: Lutz Westermann, October 2012


Small Model of Type : C and CPP


Category : GAMS API library


Main file : Cex1.gms

$TITLE 'Test expert level C API to read and write GDX' (CEX1,SEQ=3)

$ontext
Contributor: Lutz Westermann, October 2012
$offtext


$set srcRoot %gams.sysdir%apifiles%system.dirsep%C%system.dirsep%

$ifThen %system.filesys% == UNIX
$  if not set COMPILER $set COMPILER GNU
$else
$  if not set COMPILER $set COMPILER INTEL
$endIf

$ifThen %COMPILER% == GNU
$  set CCOMP gcc
$  ifThen %system.filesys% == UNIX
$    set OUT -oxp_example1
$    set FLAGS -ldl -lpthread
$  else
$    set OUT -oxp_example1.exe
$    set FLAGS
$  endIf
$elseIf %COMPILER% == INTEL
$  set CCOMP cl
$  set FLAGS
$  set OUT   -Fexp_example1.exe
$else
$  abort Unknown compiler: %COMPILER%
$endIf

$call rm -rf demanddata.gdx

$call.checkErrorLevel cp "%srcRoot%api%system.dirsep%gdxcc.c" .
$call.checkErrorLevel cp "%srcRoot%xp_example1.c" .
$call %CCOMP% xp_example1.c gdxcc.c -I"%srcRoot%api" %OUT% %FLAGS%
$if errorlevel 1 $abort 'Problem compiling xp_example1.c'
$call .%system.dirsep%xp_example1 "%gams.sysdir%."
$if errorlevel 1 $abort 'Problem executing xp_example1 writing GDX file'
$call gdxdiff demanddata.gdx demandwant.gdx
$if errorlevel 1 $abort 'Demanddata not as expected'
$call .%system.dirsep%xp_example1 "%gams.sysdir%." trnsport.gdx
$if errorlevel 1 $abort 'Problem executing xp_example1 reading GDX file'