Skip to content
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

Code changes for files in the diag_manager directory #1

Merged

Conversation

MinsukJi-NOAA
Copy link
Collaborator

Description
Mixed mode changes for files in the diag_manager directory.

How Has This Been Tested?
CI unit tests all pass.

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules
  • New check tests, if applicable, are included
  • make distcheck passes

@MinsukJi-NOAA MinsukJi-NOAA changed the title Code changes for fiels in the diag_manager directory Code changes for files in the diag_manager directory Oct 6, 2021
REAL, OPTIONAL, INTENT(in) :: missing_value !< Missing value value.
REAL, DIMENSION(2), OPTIONAL, INTENT(IN) :: range !< Valid range of values for field.
CLASS(*), OPTIONAL, INTENT(in) :: missing_value !< Missing value value.
CLASS(*), DIMENSION(:), OPTIONAL, INTENT(IN) :: range !< Valid range of values for field.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we need to implement like this if we have data array passed in with dimension.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I still don't understand the reason for this, but it allows the GNU unit tests to pass.

MODULE PROCEDURE send_data_2d_r8
MODULE PROCEDURE send_data_3d_r8
#endif
!#ifdef OVERLOAD_R8

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we already discussed this, would you please remind me why we need to comment out OVERLOAD_R8? My thinking is that 1) when we compile fms with r8 for mixed mode, we won't use "-DOVERLOAD_R8", so the code send*_r8 won't appear (just like you comment them off); 2) when we compile fms with r4 as before, we will use "-DOVERLOAD_R8", so the code can work as before. Is my understanding correct for 2)?

Copy link
Collaborator Author

@MinsukJi-NOAA MinsukJi-NOAA Oct 7, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is because send_data_2d and send_data_3d now use class(*) dummy arguments. This makes the interfaces of send_data_2d and send_data_2d_r8 indistinguishable, as I understand. Same with send_data_3d and send_data_3d_r8.

Copy link

@binli2337 binli2337 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.

@junwang-noaa
Copy link

@MinsukJi-NOAA Do you know why some CI test are cancelled?

@MinsukJi-NOAA
Copy link
Collaborator Author

MinsukJi-NOAA commented Oct 7, 2021

The CI with parallel works is waiting for some computing resources. I suppose those may run successfully on GFDL's repository. But NOAA-EMC does not have parallel works resources associated with it. We should disregard those tests, and only look at Build libFMS test

@junwang-noaa
Copy link

I see, thanks.

@junwang-noaa junwang-noaa merged commit b04c43c into NOAA-EMC:fms_mixedmode Oct 7, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants