Hi all,
This is to announce that on 5 February I have committed an important update
to FABM core. This update is described in more detail at
http://sourceforge.net/apps/mediawiki/fabm/index.php?title=API_0.9. The main
thing I'd like to mention here is that this update is NOT backward
compatible: it requires (small) changes to both biogeochemical models and
physical drivers. I know that the loss of backward compatibility is annoying
to many, and the decision to make these changes was not taken lightly.
Simply put, direct and long-term benefits outweigh the disadvantage of
requiring code modifications. This type of API update should nevertheless
remain extremely rare - we'll preserve backward compatibility whenever
possible.
Very briefly (details on the above page): when you update to the new FABM
code, biogeochemical models need to change the call to variable registration
procedures, as these were functions and are now subroutines. For instance:
self%id_n = register_state_variable(modelinfo,'nut',...)
becomes
call register_state_variable(modelinfo,self%id_n,'nut',...)
Models that use horizontal (surface or bottom-bound) or global ("day of the
year") variables also need to change the data type of variable identifiers,
which now is domain specific. For instance, for horizontal variables:
_TYPE_STATE_VARIABLE_ID_ -> type (type_bottom_state_variable_id)
_TYPE_DIAGNOSTIC_VARIABLE_ID_ -> type
(type_horizontal_diagnostic_variable_id)
_TYPE_DEPENDENCY_ID_ -> type (type_horizontal_dependency_id)
And for global variables
_TYPE_DEPENDENCY_ID_ -> type (type_global_dependency_id)
At the same time, the corresponding registration routines no longer take
"benthic" or "shape" arguments.
These are the minimum changes needed to keep code working. However, the
update offers various benefits that allow further simplification and
streamlining of your code, and I recommend that everyone reads the full
update description.
If you run into problems with this update, please inform the list. Anyone
who would like to be informed of such updates in advance in the future, or
would like to discuss impending changes or suggest others, should subscribe
to the fabm-devel mailing list.
Finally, it is worth noting that the location of the FABM git repository has
changed due to an update by SourceForge. I'll describe the change and the
actions needed in a separate e-mail.
Cheers,
Jorn