| 1 |
|
|
| 2 |
#! /usr/bin/env bash |
#! /usr/bin/env bash |
| 3 |
# |
# |
| 4 |
# $Header$ |
# $Header$ |
| 1904 |
basename=${sf%%.F} |
basename=${sf%%.F} |
| 1905 |
isAD=`egrep ^$basename.f'[ ]*' adSrcFiles.tmp` |
isAD=`egrep ^$basename.f'[ ]*' adSrcFiles.tmp` |
| 1906 |
if test -z "$isAD" ; then |
if test -z "$isAD" ; then |
| 1907 |
echo " \\" >> nonADF77srclist.tmp |
toBeIgnored=`egrep ^$basename'[ ]*' ${MODS}/dontCompile` |
| 1908 |
printf " $sf" >> nonADF77srclist.tmp |
if test -z "$toBeIgnored" ; then |
| 1909 |
|
echo " \\" >> nonADF77srclist.tmp |
| 1910 |
|
printf " $sf" >> nonADF77srclist.tmp |
| 1911 |
|
fi |
| 1912 |
fi |
fi |
| 1913 |
;; |
;; |
| 1914 |
F90) |
F90) |
| 2290 |
OPENAD_SUPPORT_C_SRC_FILES = \ |
OPENAD_SUPPORT_C_SRC_FILES = \ |
| 2291 |
iaddr.c |
iaddr.c |
| 2292 |
|
|
| 2293 |
|
f95_test_mods.f90: \$(OPENAD_SUPPORT_F90_SRC_FILES) |
| 2294 |
|
cat \$^ > \$@ |
| 2295 |
|
|
| 2296 |
|
f95_test.f90: all_mods.xb.x2w.w2f.pp.f \$(NON_AD_F77_SRC_FILES:.F=_cb2m.ff90) ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.f |
| 2297 |
|
cat \$^ > \$@ |
| 2298 |
|
|
| 2299 |
|
f95_test.out: f95_test_mods.f90 f95_test.f90 |
| 2300 |
|
f95 -w=unused -maxcontin=132 -c f95_test_mods.f90 > \$@ 2>&1 |
| 2301 |
|
f95 -w=unused -maxcontin=132 -c -fixed f95_test.f90 >> \$@ 2>&1 |
| 2302 |
|
|
| 2303 |
AD_OBJ_FILES=\$(OPENAD_SUPPORT_F90_SRC_FILES:.f90=.o) \$(OPENAD_SUPPORT_C_SRC_FILES:.c=.o) all_mods.xb.x2w.w2f.pp.o ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.o \$(NON_AD_F77_SRC_FILES:.F=_cb2m.o) \$(C_SRC_FILES:.c=.o) \$(F90_SRC_FILES:.F90=.o) |
AD_OBJ_FILES=\$(OPENAD_SUPPORT_F90_SRC_FILES:.f90=.o) \$(OPENAD_SUPPORT_C_SRC_FILES:.c=.o) all_mods.xb.x2w.w2f.pp.o ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.o \$(NON_AD_F77_SRC_FILES:.F=_cb2m.o) \$(C_SRC_FILES:.c=.o) \$(F90_SRC_FILES:.F90=.o) |
| 2304 |
|
|
| 2305 |
\$(EXE_AD): \$(AD_OBJ_FILES) |
\$(EXE_AD): \$(AD_OBJ_FILES) |
| 2371 |
|
|
| 2372 |
# XAIF -> XAIF' |
# XAIF -> XAIF' |
| 2373 |
ad_input_code_sf.w2f.canon.xb.xaif : ad_input_code_sf.w2f.canon.xaif xaif.xsd xaif_base.xsd xaif_inlinable_intrinsics.xsd xaif_derivative_propagator.xsd xaif_output.xsd openad_adm |
ad_input_code_sf.w2f.canon.xb.xaif : ad_input_code_sf.w2f.canon.xaif xaif.xsd xaif_base.xsd xaif_inlinable_intrinsics.xsd xaif_derivative_propagator.xsd xaif_output.xsd openad_adm |
| 2374 |
./openad_adm -i \$< -c \${XAIFSCHEMAROOT}/schema/examples/inlinable_intrinsics.xaif -o \$@ -I |
./openad_adm -i \$< -c \${XAIFSCHEMAROOT}/schema/examples/inlinable_intrinsics.xaif -o \$@ -I -r |
| 2375 |
|
|
| 2376 |
# XAIF' -> WHIRL' |
# XAIF' -> WHIRL' |
| 2377 |
ad_input_code_sf.w2f.canon.xb.x2w.B : ad_input_code_sf.w2f.canon.xb.xaif xaif2whirl |
ad_input_code_sf.w2f.canon.xb.x2w.B : ad_input_code_sf.w2f.canon.xb.xaif xaif2whirl |
| 2378 |
./xaif2whirl --structured ad_input_code_sf.w2f.canon.B \$< |
./xaif2whirl --debug 1 --structured ad_input_code_sf.w2f.canon.B \$< |
| 2379 |
|
|
| 2380 |
# WHIRL' -> F' |
# WHIRL' -> F' |
| 2381 |
ad_input_code_sf.w2f.canon.xb.x2w.w2f.f: ad_input_code_sf.w2f.canon.xb.x2w.B whirl2f whirl2f_be |
ad_input_code_sf.w2f.canon.xb.x2w.w2f.f: ad_input_code_sf.w2f.canon.xb.x2w.B whirl2f whirl2f_be |
| 2389 |
rm \$<.1 |
rm \$<.1 |
| 2390 |
|
|
| 2391 |
# postprocess F' |
# postprocess F' |
| 2392 |
ad_input_code_sf.w2f.canon.xb.x2w.w2f.rs.pp.f: ad_input_code_sf.w2f.canon.xb.x2w.w2f.rs.f multi-pp.pl ${MODS}/ad_inline.f ${MODS}/ad_template.checkpoint.f ${MODS}/ad_template.plain.f ${MODS}/ad_template.split.f |
ad_input_code_sf.w2f.canon.xb.x2w.w2f.rs.pp.f: ad_input_code_sf.w2f.canon.xb.x2w.w2f.rs.f multi-pp.pl ${MODS}/ad_inline.f ${MODS}/ad_template.checkpoint.f ${MODS}/ad_template.plain.f ${MODS}/ad_template.split.f ${MODS}/ad_template.sa_cg2d.f |
| 2393 |
perl multi-pp.pl -inline=${MODS}/ad_inline.f \$< |
perl multi-pp.pl -inline=${MODS}/ad_inline.f \$< |
| 2394 |
cat \$@ | sed 's/RETURN//' > \$@.1 |
cat \$@ | sed 's/RETURN//' > \$@.1 |
| 2395 |
mv \$@.1 \$@ |
mv \$@.1 \$@ |
| 2401 |
# remove the transformed globals module from the |
# remove the transformed globals module from the |
| 2402 |
# transformed ad_input_code file |
# transformed ad_input_code file |
| 2403 |
# and remove for now the duplicate variables |
# and remove for now the duplicate variables |
| 2404 |
ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.f: ad_input_code_sf.w2f.canon.xb.x2w.w2f.rs.pp.f |
# and fix 2 data statements |
| 2405 |
cat \$< | sed '/MODULE /,/END MODULE/d' | sed '/^ INTEGER(w2f__i4) DOLOOP_UB/d' > \$@ |
ad_input_code.w2f.canon.xb.x2w.w2f.rs.pp.f: ad_input_code_sf.w2f.canon.xb.x2w.w2f.rs.pp.f ${MODS}/fixData.sed |
| 2406 |
|
cat \$< | sed '/MODULE /,/END MODULE/d' | sed '/^ INTEGER(w2f__i4) DOLOOP_UB/d' | sed -f ${MODS}/fixData.sed > \$@ |
| 2407 |
|
|
| 2408 |
# setup some links |
# setup some links |
| 2409 |
%.xsd: |
%.xsd: |