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

Run MED -> GLC in CISM NOEVOLVE mode #442

Merged
merged 2 commits into from
Apr 9, 2024

Commits on Mar 12, 2024

  1. Run MED -> GLC in CISM NOEVOLVE mode

    Previously we hadn't been doing the mapping from MED -> GLC when CISM
    was running in NOEVOLVE mode. This was a problem because this downscaled
    SMB is one of the main benefits of running CISM in NOEVOLVE mode.
    
    Resolves ESCOMP#426. See that issue for details.
    
    One other change here is that I skip GLC -> MED in NOEVOLVE mode. I
    *think* that's a safe thing to do, but I'm not 100% sure of it.
    billsacks committed Mar 12, 2024
    Configuration menu
    Copy the full SHA
    8b02ffe View commit details
    Browse the repository at this point in the history

Commits on Mar 20, 2024

  1. Do GLC -> MED based on med_to_glc rather than run_glc

    When this was based on run_glc, NOEVOLVE cases were failing like this:
    
    20240319 135112.648 ERROR            PET0000 ESMF_ArrayGet.F90:1949 ESMF_ArrayGetFPtr Object being used before creation  - Bad Object
    20240319 135112.649 ERROR            PET0000 ESMF_FieldGet.F90:2634 ESMF_FieldGetDataPtr Object being used before creation  - Internal subroutine call returned Error
    20240319 135112.649 ERROR            PET0000 nuopc_shr_methods.F90:304 Object being used before creation  - Passing error in return code
    20240319 135112.649 ERROR            PET0000 glc_import_export.F90:475 Object being used before creation  - Passing error in return code
    20240319 135112.649 ERROR            PET0000 glc_comp_nuopc.F90:481 Object being used before creation  - Passing error in return code
    20240319 135112.649 ERROR            PET0000 ESM0001:src/addon/NUOPC/src/NUOPC_Driver.F90:2901 Object being used before creation  - Phase 'IPDv01p3' Initialize for modelComp 3: GLC did not return ESMF_SUCCESS
    20240319 135112.649 ERROR            PET0000 ESM0001:src/addon/NUOPC/src/NUOPC_Driver.F90:1985 Object being used before creation  - Passing error in return code
    20240319 135112.649 ERROR            PET0000 ensemble:src/addon/NUOPC/src/NUOPC_Driver.F90:2901 Object being used before creation  - Phase 'IPDv02p3' Initialize for modelComp 1: ESM0001 did not return ESMF_SUCCESS
    20240319 135112.649 ERROR            PET0000 ensemble:src/addon/NUOPC/src/NUOPC_Driver.F90:1990 Object being used before creation  - Passing error in return code
    20240319 135112.649 ERROR            PET0000 ensemble:src/addon/NUOPC/src/NUOPC_Driver.F90:489 Object being used before creation  - Passing error in return code
    20240319 135112.649 ERROR            PET0000 esmApp.F90:134 Object being used before creation  - Passing error in return code
    20240319 135112.649 INFO             PET0000 Finalizing ESMF
    
    This fails in the InitializeRealize call to export_fields, and
    specifically in this:
    
           ! Set scalars in export state
           call State_SetScalar(dble(get_nx_tot(instance_index=ns)), flds_scalar_index_nx, &
                NStateExp(ns), flds_scalar_name, flds_scalar_num, rc)
    
    So it seems like we need to have GLC -> MED in the run sequence for
    initialization to work correctly.
    billsacks committed Mar 20, 2024
    Configuration menu
    Copy the full SHA
    ac458c3 View commit details
    Browse the repository at this point in the history