@echo off
echo .

set ProgramsDir=d:\Programs
if not exist "%ProgramsDir%" (
	set ProgramsDir=c:\Programs
)
set PerlDir=%ProgramsDir%\Perl
set ElasticDir=%PerlDir%\ElasticConstant
set TemplateSource=%ElasticDir%\Template
set script=%ElasticDir%\CalElasticConstant.pl
set tee=%ProgramsDir%\bin\ktee.exe -f

set BatchFileDir=%~dp0
set RootDir=%BatchFileDir%
set TemplateDir=%RootDir%Template

set SampleName=%1
if "%SampleName%" == "" (
	echo Error: SampleName should be specified.
	goto END
)
::Remove extension
set SampleName=%SampleName:.cif=%

::Mode: gulp, vasp, pwscf
set Mode=%2
if "%Mode%" == "" (
	set Mode=pwscf
)

::@echo on
echo RootDir    : %RootDir%
echo TemplateDir: %TemplateDir%
echo SampleName : %SampleName%
echo Mode       : %Mode%

set BatchTemplate=.\run-template.bat
set RunScript=%TemplateDir%\DoPWSCF.bat

set OriginalCIF=original.cif
set OriginalFileHeader=%OriginalCIF:.cif=%

set FileListReverse=dV-0100 dV-0200
set FileListForward=dV00100 dV00200

echo FileList for reverse scan: [%FileListReverse%]
echo FileList for forward scan: [%FileListForward%]

:: Create base input files
if exist "%OriginalCIF%" (
	echo File [%OriginalCIF%] exists.
	echo Skip.
) else (
	echo call %RunScript% %OriginalCIF% init...
	call %RunScript% %OriginalCIF% init
)

:: Run for the base structure
echo call :RUN %OriginalFileHeader%
call :RUN %OriginalFileHeader%

:: Run for the reverse direction from the base structure
for %%a in ( %FileListReverse% ) do (
	echo call :RUN %%a
	call :RUN %%a
)

:: Run for the forward direction from the base structure
echo FileList: [%FileListForward%]
for %%a in ( %FileListForward% ) do (
	echo call :RUN %%a
	call :RUN %%a
)

goto END


::===================================
:: Subroutines
::===================================

:END
::call GoGULP.bat %SampleName% merge MD-NVT* MD-NPT*
echo .
exit /b


::===================================
:: Run calculation engine in the directory given by %1
::===================================
:RUN
set header=%1
if not exist "%header%.cif" (
	echo File [%header%.cif] does not exist.
	echo Skip.
) else if exist "%header%" (
	echo Directory [%header%] exists.
	echo Skip.
) else (
	echo Make [%header%]
	mkdir %header%
	echo copy [%header%.cif] to [%header%]
	copy %header%.cif %header%

	echo chdir to [%header%]
	cd %header%
	echo Working in:
	cd
	echo ...

	echo call %RunScript% %header% init...
	call %RunScript% %header% init
	echo call %RunScript% %header% exec...
	call %RunScript% %header% exec
	echo call %RunScript% %header% post...
	call %RunScript% %header% post
)

echo .
echo cd to RootDir [%RootDir%]
cd %RootDir%
exit /b

