#!/bin/bash


# GCM environment variables
#--------------------------
export LMDGCM=$PWD
#echo $LMDGCM
export LIBOGCM=$PWD/libo
#echo $LIBOGCM

# generate the appropriate dimphys
#---------------------------------
cd libf/phymars
\rm dimphys.h 2> /dev/null
physize=$(expr $1 \* $2)
#echo $physize
sed s/--xsize--/$1/g meso_dimphys.h_ref | sed s/--ysize--/$2/g | sed s/--physize--/$physize/g | sed s/--zsize--/$3/g > dimphys.h
head -15 dimphys.h
cd ../..

# prepare for nesting
#---------------------
cd libf
echo number of nests $4
duplicate$4 2> /dev/null
cd ..


# compile physics
#-------------------------- 
\rm libf/grid/dimensions.h 2> /dev/null
\rm libo/log_compile_phys 2> /dev/null
\rm libo/liblmd_content 2> /dev/null
echo compiling ...
echo compilation info in: 
echo $PWD/libo/log_compile_phys
nohup makegcm_xlf_90 -p mars -d $3 meso_testphys1d | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys
nohup makegcm_xlf -p mars -d $3 meso_testphys1d | tee libo/log_compile_phys | grep 'warnings' >> libo/log_compile_phys 
echo ... done
	#clean the duplicate routines
	cd libf
	duplicate1 2> /dev/null
	cd ..

# merge LMD executables in one lib
#--------------------------------------
cd libo
mkdir temp
cp -f LINUXO2*qfixed_${3}_t1_reg/*.a temp
cp -f LINUXO2*qfree*_${3}_t1_reg/libphymars.a temp/libphymars90.a
cd temp
ar x libbibio.a
ar x libphymars.a
ar x libaeronomars.a
ar x libphymars90.a
\rm *.a
ar r liblmd.a *
cp -f liblmd.a ..
cd ..
\rm -r temp
nm liblmd.a > liblmd_content
# finish merge
cd ..

# save a copy 
#--------------
cp -f libo/liblmd.a libo/liblmd.a_${1}_${2}_${3}_${4} 
echo -------- END --------

