Commit
7f1decd0252e0b4d80f4b3873b0b48b6d3ec8631
by noreplyRestructuring and Porting of Compute_mixing_length subroutine(Phase 2) (#1054)
* Restructuring and Porting of Compute_mixing_length subroutine(Phase 2)
Restructure: sat_mixrat_liq_2D_acc is being directly called instead of
calling the 1D version inside the column loop. Changing sat_mixrat_liq_2D_acc
to a subroutine from a function and adding output array, start_index as
additional argument. This is a workaround for passing sub-arrays. The OpenACC
doen't like the sub-arrays being passed and fails the validation.
Porting: OpenACC directives are added inside sat_mixrat_liq_2D_acc for porting
Validation: Answers are Bit for Bit with arm-multicolumn case + nvhpc compiler
* Fix for compilation issues
Issue 1: Missed out declaring 'start_index' while intergrating the
change
Issue 2: The use of error_code module and the procedures inside it
causes OpenACC compilation issues when run on the device.
* Removing the sat_mixrat_liq_acc and sat_mixrat_liq_2D_acc, making the normal sat_mixrat_liq work for all current use cases, and making the other versions of sat_mixrat_liq (bolton,gfdl,lookup) functional with OPENACC.
Co-authored-by: huebler <huebler@uwm.edu>