Not able to compile cam7 physics with nag compiler
Opened this issue · 5 comments
What happened?
Build of cam7 physics with the nag compiler on izumi failed.
These are the compiler error messages:
Error: /home/fvitt/camdev/cam6_4_047/src/physics/rrtmgp/ext/extensions/mo_cloud_sampling.F90, line 315: Implicit type for FINDLOC in SAMPLED_MASK_EXP_RAN
Error: /home/fvitt/camdev/cam6_4_047/src/physics/rrtmgp/ext/extensions/mo_cloud_sampling.F90, line 315: Implicit type for FINDLOC in SAMPLED_MASK_MAX_RAN
It seems that findloc
intrinsic function is not available in nag6.2
What are the steps to reproduce the bug?
./create_test --test-id cam7 SMS_D_Ln9.ne3pg3_ne3pg3_mg37.FMTHIST.izumi_nag.cam-outfrq9s
What CAM tag were you using?
cam6_4_047
What machine were you running CAM on?
CGD machine (e.g. izumi)
What compiler were you using?
NAG
Path to a case directory, if applicable
/scratch/cluster/fvitt/SMS_D_Ln9.ne3pg3_ne3pg3_mg37.FMTHIST.izumi_nag.cam-outfrq9s.cam7
Will you be addressing this bug yourself?
No
Extra info
Perhaps nag7.0 will include the findloc
function
NAG 7.0 does support FINDLOC
. See https://support.nag.com/nagware/np/r70_doc/manual/compiler_10_6.html
@peverwhee and/or @brian-eaton (or anyone else who has contact with the RRTMGP developers) - Could one of you reach out to see if RRTMGP would be willing to change their findloc logic?
I am going to jump in here and push back on having RRTMGP remove findloc
, as it is completely valid Fortran. Instead I think we need to update NAG on Izumi to 7.0 or whatever the latest version is. This is especially true because there is also CCPP framework code which doesn't work with NAG 6.2 (but should work with later versions).
Sorry - I added a "not" both times I read the comment about NAG 7.0. I agree with @nusbaume
Using the NAG 7.0 compiler on izumi, it progresses further, but then has these errors (I have not looked into them at all):
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90, line 172: Argument TROPO of BIND(C) procedure INTERPOLATION is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90, line 340: Argument MINOR_SCALES_WITH_DENSITY_LOWER of BIND(C) procedure COMPUTE_TAU_ABSORPTION is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90, line 340: Argument MINOR_SCALES_WITH_DENSITY_UPPER of BIND(C) procedure COMPUTE_TAU_ABSORPTION is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90, line 340: Argument SCALE_BY_COMPLEMENT_LOWER of BIND(C) procedure COMPUTE_TAU_ABSORPTION is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90, line 340: Argument SCALE_BY_COMPLEMENT_UPPER of BIND(C) procedure COMPUTE_TAU_ABSORPTION is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90, line 340: Argument TROPO of BIND(C) procedure COMPUTE_TAU_ABSORPTION is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90, line 564: Argument TROPO of BIND(C) procedure COMPUTE_TAU_RAYLEIGH is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rrtmgp-kernels/mo_gas_optics_rrtmgp_kernels.F90, line 702: Argument TROPO of BIND(C) procedure COMPUTE_PLANCK_SOURCE is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 382: Argument TOP_AT_1 of BIND(C) procedure LW_SOLVER_NOSCAT is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 382: Argument DO_BROADBAND of BIND(C) procedure LW_SOLVER_NOSCAT is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 382: Argument DO_JACOBIANS of BIND(C) procedure LW_SOLVER_NOSCAT is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 382: Argument DO_RESCALING of BIND(C) procedure LW_SOLVER_NOSCAT is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 465: Argument TOP_AT_1 of BIND(C) procedure LW_SOLVER_2STREAM is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 519: Argument TOP_AT_1 of BIND(C) procedure SW_SOLVER_NOSCAT is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 634: Argument TOP_AT_1 of BIND(C) procedure SW_SOLVER_2STREAM is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 634: Argument HAS_DIF_BC of BIND(C) procedure SW_SOLVER_2STREAM is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 634: Argument DO_BROADBAND of BIND(C) procedure SW_SOLVER_2STREAM is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 1008: Argument TOP_AT_1 of BIND(C) procedure LW_SOURCE_2STR is of non-interoperable type LOGICAL
Error: /home/cacraig/cam_zm_cleanup4/src/physics/rrtmgp/ext/rte-kernels/mo_rte_solver_kernels.F90, line 1161: Argument TOP_AT_1 of BIND(C) procedure SW_DIF_AND_SOURCE is of non-interoperable type LOGICAL
ERROR: BUILD FAIL: cam.buildlib failed, cat /scratch/cluster/cacraig/SMS_D_Ln9.ne3pg3_ne3pg3_mg37.FMTHIST.izumi_nag.cam-outfrq9s.cam7/bld/atm.bldlog.241216-161010
`