설명
기고자: Lutz Westermann, 2012년 10월
소형 모델 유형 :포트란
카테고리 : 무료 슬롯 API 라이브러리
메인 파일 : Fex2.gms
$title 'GDX를 읽고 쓰고, 옵션을 설정하고 무료 슬롯를 실행하려면 전문가 수준의 Fortran API를 테스트하세요' (FEX2,SEQ=17)
$onText
기고자: Lutz Westermann, 2012년 10월
$offText
$set srcRoot %무료 슬롯sysdir%apifiles%system.dirsep%Fortran%system.dirsep%
$set srcRootC %무료 슬롯sysdir%apifiles%system.dirsep%C%system.dirsep%
$ifThen %system.filesys% == UNIX
$ 설정되지 않은 경우 COMPILER $set COMPILER GNU
$else
$ 설정되지 않은 경우 COMPILER $set COMPILER INTEL
$endIf
$ifThen %COMPILER% == GNU
$ 세트 FCOMP gfortran
$ CCOMP gcc 설정
$ 세트 LIB ar ruv
$ 세트 LIBOP
$ 세트 LIBEX a
$ 세트 OBJEX o
$ SYMSTY -DAPIWRAP_LCASE_DECOR 설정
$ ifThen %system.filesys% == UNIX
$ OUT 설정 -oxp_example2
$ 플래그 설정 -ldl
$ LDFLAGS 설정 -lpthread
$ 다른
$ OUT 설정 -oxp_example2.exe
$ 플래그 설정
$ 세트 LDFLAGS
$ endIf
$elseIf %COMPILER% == INTEL
$ FCOMP ifort 설정
$ CCOMP cl 설정
$ LIB lib 설정
$ LIBOP 설정 -아웃:
$ LIBEX lib 설정
$ OBJEX 객체를 설정합니다.
$ 플래그 설정
$ 세트 SYMSTY -DAPIWRAP_LCASE_NODECOR
$ OUT 설정 -Fexp_example2.exe
$ 세트 LDFLAGS
$else
$ 중단 알 수 없는 컴파일러: %COMPILER%
$endIf
$call rm -rf Demanddata.gdx
$call %FCOMP% -c "%srcRoot%api%system.dirsep%gdxf9def.f90" %FLAGS%
$if errorlevel 1 $abort 'gdxf9def.f90 컴파일 문제'
$call %FCOMP% -c "%srcRoot%api%system.dirsep%optf9def.f90" %FLAGS%
$if errorlevel 1 $abort 'optf9def.f90 컴파일 문제'
$call %CCOMP% %SYMSTY% -c "%srcRoot%api%system.dirsep%gdxf9glu.c" -I"%srcRootC%api" -I"%srcRoot%api" %FLAGS%
$if errorlevel 1 $abort 'gdxf9glu.c 컴파일 문제'
$call %CCOMP% %SYMSTY% -c "%srcRoot%api%system.dirsep%optf9glu.c" -I"%srcRootC%api" -I"%srcRoot%api" %FLAGS%
$if errorlevel 1 $abort 'optf9glu.c 컴파일 문제'
$call %LIB% %LIBOP%gdxf90lib.%LIBEX% gdxf9def.%OBJEX% gdxf9glu.%OBJEX%
$if errorlevel 1 $abort 'gdx lib 파일 생성 중 문제 발생'
$call %LIB% %LIBOP%optf90lib.%LIBEX% optf9def.%OBJEX% optf9glu.%OBJEX%
$if errorlevel 1 $abort 'opt lib 파일 생성 중 문제 발생'
$call %FCOMP% -c "%srcRoot%api%system.dirsep%gamsglobals_mod.f90" "%srcRoot%xp_example2.f90" %FLAGS%
$if errorlevel 1 $abort 'xp_example2.f90 컴파일 문제'
$call %FCOMP% %OUT% gamsglobals_mod.%OBJEX% xp_example2.%OBJEX% gdxf90lib.%LIBEX% optf90lib.%LIBEX% %FLAGS% %LDFLAGS%
$if errorlevel 1 $abort '연결 중 문제 발생'
$call .%system.dirsep%xp_example2 "%무료 슬롯sysdir%." model2.gms
$if errorlevel 1 $abort 'xp_example2 실행 중 문제 발생
$call gdxdiffdemanddata.gdxdemandwant.gdx
$if errorlevel 1 $abort '수요 데이터가 예상과 다릅니다.'