Upcoming FABM 1.0 release

21 views
Skip to first unread message

Jorn Bruggeman

unread,
Mar 18, 2020, 7:20:55 AM3/18/20
to fabm-...@googlegroups.com, fabm-...@googlegroups.com

Hi all,

 

We are currently putting the finishing touches on the 1.0 release of FABM. This will be a long-term stable release with a cleaned-up set of interfaces. For that reason, it makes minor changes to the way FABM interacts with hydrodynamic models – couplers will need an update. Biogeochemical codes will typically function as before. Details can be found here:

 

https://github.com/fabm-model/fabm/wiki/RFC-1.0

 

The current 1.0 code is available in a separate branch 1.0rc1 – we encourage anyone interested to take a look. It will be merged into master within 1-2 weeks.

 

Note that you can always check out previous versions of FABM from its git repository. That could be a solution if you are unable to update your codes to work with the 1.0 release. Of course we recommend you update to the 1.0 code whenever possible. It has various advantages in addition to its cleaner API, including improved performance and better handling of complicated dependencies between biogeochemical modules.

 

All comments and questions are welcome! When 1.0 is released, it will be announce on the mailing lists.

 

Cheers,

 

Jorn

 

Onur

unread,
Mar 19, 2020, 1:07:17 PM3/19/20
to FABM-devel
Hello,

I thought this may suit to the devel list better, but let me know / feel free to forward if it may be relevant for the users.

After a fresh pull --recurse-submodules on gotm, and checking out the 1.0rc1 on fabm (45eca1), I could not compile for gotm (see the log below).

This is on Debian 10, gfortran 8.3.0 and cmake 3.13.4.

I found out that when I checkout the commit 16691f from Feb. 3, everything works fine. But as soon as I checkout the next one (527b93), compilation fails again with a longer list of problems. Unfortunately with that commit quite a few things seem to have changed, so it's getting difficult for me to trace the problem..

Cheers,
Onur

Scanning dependencies of target gotm_fabm
[ 93%] Building Fortran object fabm/CMakeFiles/gotm_fabm.dir/gotm_fabm.F90.o
[ 94%] Linking Fortran static library libgotm_fabm.a
[ 94%] Built target gotm_fabm
[ 94%] Building Fortran object fabm/CMakeFiles/gotm_fabm_io.dir/gotm_fabm_input.F90.o
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:20:17:

    use fabm,only: type_bulk_variable_id,type_horizontal_variable_id,type_scalar_variable_id
                 1
Error: Symbol ‘type_bulk_variable_id’ referenced at (1) not found in module ‘fabm’

Jorn Bruggeman

unread,
Mar 19, 2020, 1:11:49 PM3/19/20
to fabm-...@googlegroups.com

Thanks Onur, that should be fixed now (pull from gotm)

 

Note that most hydrodynamic models will not be FABM 1.0 compatible yet. But GOTM is an exception :-)

 

Cheers,

 

Jorn

 

From: fabm-...@googlegroups.com <fabm-...@googlegroups.com> On Behalf Of Onur
Sent: 19 March 2020 17:07
To: FABM-devel <fabm-...@googlegroups.com>
Subject: [fabm-devel:1326] Re: Upcoming FABM 1.0 release

 

Hello,

 

I thought this may suit to the devel list better, but let me know / feel free to forward if it may be relevant for the users.

 

After a fresh pull --recurse-submodules on gotm, and checking out the 1.0rc1 on fabm (45eca1), I could not compile for gotm (see the log below).

 

This is on Debian 10, gfortran 8.3.0

Onur

 

Scanning dependencies of target gotm_fabm
[ 93%] Building Fortran object fabm/CMakeFiles/gotm_fabm.dir/gotm_fabm.F90.o
[ 94%] Linking Fortran static library libgotm_fabm.a
[ 94%] Built target gotm_fabm
[ 94%] Building Fortran object fabm/CMakeFiles/gotm_fabm_io.dir/gotm_fabm_input.F90.o
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:20:17:

    use fabm,only: type_bulk_variable_id,type_horizontal_variable_id,type_scalar_variable_id
                 1
Error: Symbol ‘type_bulk_variable_id’ referenced at (1) not found in module ‘fabm’

 


On Wednesday, March 18, 2020 at 12:20:55 PM UTC+1, jorn wrote:

Hi all,

 

We are currently putting the finishing touches on the 1.0 release of FABM. This will be a long-term stable release with a cleaned-up set of interfaces. For that reason, it makes minor changes to the way FABM interacts with hydrodynamic models – couplers will need an update. Biogeochemical codes will typically function as before. Details can be found here:

 

https://github.com/fabm-model/fabm/wiki/RFC-1.0

 

The current 1.0 code is available in a separate branch 1.0rc1 – we encourage anyone interested to take a look. It will be merged into master within 1-2 weeks.

 

Note that you can always check out previous versions of FABM from its git repository. That could be a solution if you are unable to update your codes to work with the 1.0 release. Of course we recommend you update to the 1.0 code whenever possible. It has various advantages in addition to its cleaner API, including improved performance and better handling of complicated dependencies between biogeochemical modules.

 

All comments and questions are welcome! When 1.0 is released, it will be announce on the mailing lists.

 

Cheers,

 

Jorn

 

--
You received this message because you are subscribed to the Google Groups "FABM-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fabm-devel+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fabm-devel/0320ccb3-edee-4ad2-a5a9-3cc95992e070%40googlegroups.com.

Onur

unread,
Mar 19, 2020, 1:31:15 PM3/19/20
to FABM-devel
Hi Jorn,

thanks for the quick response!

I just tried, but there seems to be something still missing -see the log below.

Cheers,
Onur

...
[ 94%] Built target gotm_fabm
Scanning dependencies of target gotm_fabm_io

[ 94%] Building Fortran object fabm/CMakeFiles/gotm_fabm_io.dir/gotm_fabm_input.F90.o
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:122:183:

 iable%interior_id%variable%long_name), trim(input_variable%interior_id%variable%units), default=0._rk, pchild=branch)
                                                                                                     1

Error: Missing kind-parameter at (1)
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:125:113:

    call branch%get(input_variable%relax_tau, 'relax_tau', 'relaxation time scale', 's', minimum=0._rk, default=1.e15_rk)
                                                                                                     1

Error: Missing kind-parameter at (1)
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:126:138:

 variable%relax_tau_bot, 'relax_tau_bot', 'relaxation time scale for bottom layer', 's', minimum=0._rk, default=1.e15_rk)
                                                                                                     1

Error: Missing kind-parameter at (1)
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:127:141:

 iable%relax_tau_surf, 'relax_tau_surf', 'relaxation time scale for surface layer', 's', minimum=0._rk, default=1.e15_rk)
                                                                                                     1

Error: Missing kind-parameter at (1)
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:128:128:

 get(input_variable%h_bot, 'thickness_bot', 'thickness of bottom relaxation layer', 'm', minimum=0._rk, default=0._rk)
                                                                                                     1

Error: Missing kind-parameter at (1)
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:129:131:

 (input_variable%h_surf, 'thickness_surf', 'thickness of surface relaxation layer', 'm', minimum=0._rk, default=0._rk)
                                                                                                     1

Error: Missing kind-parameter at (1)
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:138:189:

 e%horizontal_id%variable%long_name), trim(input_variable%horizontal_id%variable%units), default=0._rk, pchild=branch)
                                                                                                     1

Error: Missing kind-parameter at (1)
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:141:116:

    call branch%get(input_variable%relax_tau, 'relax_tau', 'relaxation time scale', 's', minimum=0._rk, default=1.e15_rk)
                                                                                                     1

Error: Missing kind-parameter at (1)
/home/onur/opt/gotm/src/fabm/gotm_fabm_input.F90:152:181:

 _variable%scalar_id%variable%long_name), trim(input_variable%scalar_id%variable%units), default=0._rk, pchild=branch)
                                                                                                     1

Error: Missing kind-parameter at (1)
make[2]: *** [fabm/CMakeFiles/gotm_fabm_io.dir/build.make:63: fabm/CMakeFiles/gotm_fabm_io.dir/gotm_fabm_input.F90.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1742: fabm/CMakeFiles/gotm_fabm_io.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

To unsubscribe from this group and stop receiving emails from it, send an email to fabm-...@googlegroups.com.

Jorn Bruggeman

unread,
Mar 19, 2020, 2:37:18 PM3/19/20
to fabm-...@googlegroups.com

Ah yes, I committed only half of the necessary changes… Now?

To unsubscribe from this group and stop receiving emails from it, send an email to fabm-devel+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fabm-devel/c8f422e2-452b-48ad-a0de-0e1640b00928%40googlegroups.com.

Onur

unread,
Mar 19, 2020, 6:26:51 PM3/19/20
to FABM-devel
yes, it worked now. Thanks!

A test case I tried went smoothly as well :-)
 
Onur

Onur

unread,
Mar 20, 2020, 5:36:35 AM3/20/20
to FABM-devel
Hi again Jorn,

I tried compiling the 0d driver as the next thing, but it failed (see below).

This one was uncomplicated though, the attached patch seemed to work on my system.

Cheers,
Onur

Scanning dependencies of target fabm0d
[ 96%] Building Fortran object CMakeFiles/fabm0d.dir/shared.F90.o
/home/onur/opt/gotm/extern/fabm/src/drivers/0d/shared.F90:2:17:

    use fabm,only: type_model
                 1
Error: Symbol ‘type_model’ referenced at (1) not found in module ‘fabm’
/home/onur/opt/gotm/extern/fabm/src/drivers/0d/shared.F90:10:21:

    class (type_model), save, pointer :: model => null()
                     1
Error: Derived type ‘type_model’ at (1) is being used before it is defined
make[2]: *** [CMakeFiles/fabm0d.dir/build.make:89: CMakeFiles/fabm0d.dir/shared.F90.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:79: CMakeFiles/fabm0d.dir/all] Error 2

make: *** [Makefile:130: all] Error 2
f0d_1.0rc1-fix.patch
Reply all
Reply to author
Forward
0 new messages