Replies: 4 comments
-
|
Hi Kai, Apologies for the slow response. Variables like "int_change_in_total_X" are calculated by integrating over space and then comparing with an historical value (the value at the start of the simulation). That involves a type of global knowledge of time and space that FABM modules do not have - they operate locally in time and (horizontal) space. Thus, this functionality cannot be offered in a general way at the FABM level. That does not prevent individual hosts from passing such fields, but most that I have seen do not calculate the exact equivalent of fabm0d/gotm's "int_change_in_total_X". Perhaps the more interesting question is: if you had those globally integrated numbers in a FABM routine that operates at a local point in space, what would you do with them? There may be other ways to achieve something similar. Cheers, Jorn |
Beta Was this translation helpful? Give feedback.
-
|
Hey Jorn!
Many thanks for your response. It would perhaps make sense to shift this discussion to the FABM chat Forum.
My last request (specific case of Int_Change_Nitrogen) indeed was about leaving for a short moment FABM’s time agnostics. My model needs to know the change rate in a single auxiliary state, which so far is impossible to get.
However, the problem goes even deeper than this. As you me know, we in my group develop also behavioral models for aquatic organisms including phytoplankton, which requires knowledge of environmental states over space and sometimes also time. OK, there is fundamentally no way to implement behavioral/migration strategies within FABM. Could you envisage a way to slightly open FABM models to communicate with their hosts about fields otherwise managed by the hosts such as a „field of standard variables“?
Best Kai
Am 10.04.2025 um 14:18 schrieb Jorn Bruggeman ***@***.***>:
Hi Kai,
Apologies for the slow response. Variables like "int_change_in_total_X" are calculated by integrating over space and then comparing with an historical value (the value at the start of the simulation). That involves a type of global knowledge of time and space that FABM modules do not have - they operate locally in time and (horizontal) space. Thus, this functionality cannot be offered in a general way at the FABM level. That does not prevent individual hosts from passing such fields, but most that I have seen do not calculate the exact equivalent of fabm0d/gotm's "int_change_in_total_X". Perhaps the more interesting question is: if you had those globally integrated numbers in a FABM routine that operates at a local point in space, what would you do with them? There may be other ways to achieve something similar.
Cheers,
Jorn
—
Reply to this email directly, view it on GitHub<#115 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/BEUZZN5KDLULBKXLZQ6ST6D2YZOQ3AVCNFSM6AAAAAB2BQ6CY2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOOJSGU2TAOBSGY>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
[https://avatars.githubusercontent.com/u/2621530?s=20&v=4]jornbr left a comment (fabm-model/fabm#115)<#115 (comment)>
Hi Kai,
Apologies for the slow response. Variables like "int_change_in_total_X" are calculated by integrating over space and then comparing with an historical value (the value at the start of the simulation). That involves a type of global knowledge of time and space that FABM modules do not have - they operate locally in time and (horizontal) space. Thus, this functionality cannot be offered in a general way at the FABM level. That does not prevent individual hosts from passing such fields, but most that I have seen do not calculate the exact equivalent of fabm0d/gotm's "int_change_in_total_X". Perhaps the more interesting question is: if you had those globally integrated numbers in a FABM routine that operates at a local point in space, what would you do with them? There may be other ways to achieve something similar.
Cheers,
Jorn
—
Reply to this email directly, view it on GitHub<#115 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/BEUZZN5KDLULBKXLZQ6ST6D2YZOQ3AVCNFSM6AAAAAB2BQ6CY2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOOJSGU2TAOBSGY>.
You are receiving this because you authored the thread.Message ID: ***@***.***>
Helmholtz-Zentrum hereon GmbH Max-Planck-Straße 1 I 21502 Geesthacht I Deutschland/Germany Geschäftsführung I Board of Management: Prof. Dr. Regine Willumeit-Römer, Elisabeth Gerndt Vorsitzender des Aufsichtsrates I Chairman of the Supervisory Board: Ministerialdirigent Dr. Ralf Gebel | Amtsgericht Lübeck HRB 285 GE (Register Court) Internet: www.hereon.de
|
Beta Was this translation helpful? Give feedback.
-
|
Hi Kai, I've now converted the issue into a discussion. As for the new questions:
Cheers, Jorn |
Beta Was this translation helpful? Give feedback.
-
|
For completeness: there is built-in support for temporal filters, e.g., for accessing running means: https://github.com/fabm-model/fabm/blob/master/src/models/examples/mean.F90#L30-L34. Those are simple in-place running means though - if you'd want a true "recently experienced environment" of a pelagic variable, you might want a fancier approach where the recent history is represented by tracers so that transport (and movement) is taken into account. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
hi jorn,
related to my last issue (#114) I would like to learn how the array "int_change_in_totals" calculated by the fabm0d-driver can be accessed within a module. and is this infrastructure also provided by other drivers?
best, kai
Beta Was this translation helpful? Give feedback.
All reactions