-
Notifications
You must be signed in to change notification settings - Fork 136
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Diag field type #1017
Diag field type #1017
Conversation
Keeps some of the routines in the fms_diag_object_mod
Diag_manager only needs fms_diag_object to do inits and registers
CALL diag_yaml_object_init(diag_subset_output) | ||
CALL fms_diag_axis_object_init() | ||
CALL fms_diag_object_init(255, 255) !< TO DO: MAX_LEN_VARNAME and MAX_LEN_META are supposed to be read from | ||
!! the namelist and sent to fms_diag_object | ||
fms_diag_files_object_initialized = fms_diag_files_object_init () | ||
CALL fms_diag_object%init(diag_subset_output) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This initializes the yaml twice. Once in L3921 and then inside CALL fms_diag_object%init(diag_subset_output)
call diag_yaml_object_init(diag_subset_output)
needs to be remove
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A module initialized was added to the yaml module so that it doesn';t crash. The code needs to be rearranged so that the diag object handles the inialization of the yaml and the axis objects.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very good. Some of my comments are intended for discussion.
logical, private :: axes_initialized=.false. !< True if the fmsDiagObject is initialized | ||
|
||
contains | ||
procedure :: init => fms_diag_object_init |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More musings on procedure names: Should we consider "type bound procedures" as just that? So "fms_diag_obj_init" is bound to type fmsDiagObj_type? The in "fms_diag_obj_init" name, the "fms" is redundant; and so is the "diag_obj". We can use the in_class declaration init => init_imp; where "_imp" stands for implementation? Also, it it possible for the "init" above to be public, wheres the "init_imp" is private? That is, we want the clients to call init, never the init_imp.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We will make the actual functions private so that users can only call the type bound procedures
Description
The redesign of the object oriented Diag Manager. It includes a mediator/controller tohandle all of the public functions for the object oriented stuff.
Fixes #
How Has This Been Tested?
Checklist:
make distcheck
passes