Note |
---|
This page is only valid for OpenIFS 43r3 or earlier model releases |
Section | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
Example1: Modifying compilation options
HowTo customise compiling OpenIFS explains how environment variables and editing the configuration files can alter the compiler settings for OpenIFS. In this simple example, an inherited build is used to achieve the same effect by creating a separate configuration file.
...
As in the main 'make
' directory, FCM has created a 'build
' subdirectory which in this case only contains the object file of the routine uvclr
and a new executable. You now have the original executable in 'oifs/make/build/bin/master.exe
' and this modified one for testing/debugging.
To run this new executable as a test, edit the job script in the t21test directory and alter the line: MASTER=
to point to the location of the newly built executable.
Info |
---|
Experiment with this example by adding additional lines in the |
Info |
Experiment with this example by adding additional lines in the To verify the new compiler options are being used add the |
...
Note that FCM has: seen the new version of cnt0.F90, recompiled it and relinked it to the pre-compiled object code in oifs/make. The new executable can be found in the build/bin sub-directory. As in example 1, to try out this new executable in the t21test directory edit the script and change the line MASTER=
to point to the location of this executable.
A more advanced example with modules
...
Code Block | ||
---|---|---|
| ||
% fcm make -v -f new-src.cfg [init] make [init] make config-parse [info] config-file=/openifs/inherit_tests/oifs/mymake/new-src.cfg [done] make dest-init [init] make build [info] analyse 0.0 newsrc/newsub.F90 [info] analyse 0.0 ifs/module/yemct0.F90 [info] analyse 0.0 ifs/control/cnt0.F90 [info] sources: total=2193, analysed=3, elapsed-time=0.5s, total-time=0.0s [info] target-tree-analysis: elapsed-time=13.2s [info] compile 0.0 M yemct0.o <- ifs/module/yemct0.F90 [info] compile+ 0.0 M yemct0.mod <- ifs/module/yemct0.F90 [info] ext-iface 0.0 U cnt3.intfb.h <- ifs/control/cnt3.F90 [info] compile 0.0 U cnt2.o <- ifs/control/cnt2.F90 [info] ext-iface 0.0 U cnt0.intfb.h <- ifs/control/cnt0.F90 [info] compile 0.1 U cnt3.o <- ifs/control/cnt3.F90 [info] compile 0.1 M cnt0.o <- ifs/control/cnt0.F90 [FAIL] make build # 25.4s [FAIL] make # 25.6s [FAIL] mpif90 -obin/master.exe /media/hugetmp/Backedup/openifs/inherit_tests/oifs/make/build/o/master.o -L/var/tmp/tmpdir/nagcuser/jtmp.6858/LvpNtq0TxD -lmaster -fopenmp /home/rd/openifs/software/grib_api/1.9.18/grib_api-gcc-4.5.0/lib/libgrib_api_f90.a /home/rd/openifs/software/grib_api/1.9.18/grib_api-gcc-4.5.0/lib/libgrib_api.a -L/usr/local/apps/lapack/3.4.1/LP64 -llapack -lblas -lm # rc=1 [FAIL] /var/tmp/tmpdir/nagcuser/jtmp.6858/LvpNtq0TxD/libmaster.a(cnt0.o): In function `cnt0': [FAIL] /media/hugetmp/Backedup/openifs/inherit_tests/oifs/mysrc3/ifs/control/cnt0.F90:101: undefined reference to `newsub_' [FAIL] collect2: ld returned 1 exit status |
...
Additional help can be found in the compiling and FCM OpenIFS Frequently Asked Questions page.
The OpenIFS forums can be used to ask questions to the OpenIFS community and support team.
Any questions or problems can also be sent direct to the OpenIFS support team at: openifs-support@ecmwf.int.
HTML |
---|
<script type="text/javascript" src="https://software.ecmwf.int/issues/s/en_UKet2vtj/787/12/1.2.5/_/download/batch/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector/com.atlassian.jira.collector.plugin.jira-issue-collector-plugin:issuecollector.js?collectorId=5fd84ec6"></script>
|
Excerpt Include | ||||||
---|---|---|---|---|---|---|
| ||||||
Excerpt Include | ||||||
|