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

[NDSL] GF convection port (GF2020) #935

Open
1 task
FlorianDeconinck opened this issue May 22, 2024 · 1 comment
Open
1 task

[NDSL] GF convection port (GF2020) #935

FlorianDeconinck opened this issue May 22, 2024 · 1 comment
Assignees

Comments

@FlorianDeconinck
Copy link
Collaborator

Located at GEOS_GF_InterfaceMod.F90:GF_Run, two main subroutines.

Use GEOS-FP to determine which one to port and GMAO expertise. Everything under Run should be considered for port. GF_2020 should be the one we run, since the GEOS5 is the older one.

Parent: GEOS-ESM/SMT-Nebulae#57


  • Port GF to pyMoist

Breakdown:

*GF2020_Interface *

  • alloc_grads_arr
  • set_index_loops
  • flipz
  • get_vars
  • GF2020_DRV
    • prepare_temp_pertubations
       - CUP_gf (Note this is not the same as CUP_gf from GEOS5)
      • gen_random
          - system_clock
      • cup_env
        • satur_spec_hum
      • SOUND
          - cup_env_clev
      • get_interp
      • get_partition_liq_ice
        • fract_liq_f
          • ice_fraction -> ICE_FRACTION_SC
      • precip_cwv_factor
          - get_cloud_bc
          - get_lcl
           - satvap
           - td
      • cup_cloud_limits
          - cup_minimi
          - rates_up_pdf
          - get_zu_zd_pdf
           - gammaBrams
            - intfuncgamma
          - get_lateral_massflux
          - get_buoyancy
          - cup_up_moisture_light
          - cup_up_vvel
          - cup_up_moisture
           - get_delmix
           - fract_liq_f
            - ice_fraction
           - get_melting_profile
           - get_delmix
           - get_jmin
           - get_lateral_massflux_down
           - get_wetbulb
           - cup_dd_moisture
           - cup_up_aa0
           - cup_up_aa1bl
           - cup_dd_edt
           - tridiag
           - fct1d3
           - cup_forcing_ens_3d
           - cup_forcing_ens_3d_mid
           - cup_up_cape
           - cup_forcing_ens_3d_shal
           - ke_to_heating
           - cup_output_ens_3d
           - get_precip_fluxes
           - rain_evap_below_cloudbase
           - cloud_dissipation
           - cup_up_lightning
           - get_liq_ice_number_conc
            - make_IceNumber
            - make_DropletNumber
           - cup_env_clev_chem
            - get_w_upd_gcc
           - get_incloud_sc_chem_up
            - henry_gcc
            - henry
            - compute_ki_gcc_gas
        - gcc_e_ice
           - get_incloud_sc_chem_dd
           - set_grads_var
           - wrt_bin_ctl
  • MAPL_EQsat -> QSAT0 (Found under src/Shared/@MAPL/base/MAPL_SatVapor.F90)

Note: I think there're recursive calls possible within QSAT0

@FlorianDeconinck
Copy link
Collaborator Author

FlorianDeconinck commented Nov 28, 2024

Main difficulty is the K-axis flip and axis re-shuffling (from I, J, K) to (K, I, J).

De-flipping the K is going to be a headache. Whereas axis re-shuffle can be a utility made for all GF translate test

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

No branches or pull requests

3 participants