diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..257a9e2d6 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,8 @@ +version: 2 +updates: + # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + target-branch: "main" diff --git a/.github/workflows/ci_build_scm_ubuntu_22.04.yml b/.github/workflows/ci_build_scm_ubuntu_22.04.yml index e89dcb50c..3100ef4ce 100644 --- a/.github/workflows/ci_build_scm_ubuntu_22.04.yml +++ b/.github/workflows/ci_build_scm_ubuntu_22.04.yml @@ -29,7 +29,7 @@ jobs: # Initial ####################################################################################### - name: Checkout SCM code (into /home/runner/work/ccpp-scm/) - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize submodules run: git submodule update --init --recursive @@ -38,7 +38,7 @@ jobs: # Python setup ####################################################################################### - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: ${{matrix.py-version}} @@ -70,7 +70,7 @@ jobs: - name: Cache bacio library v2.4.1 id: cache-bacio-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/bacio key: cache-bacio-fortran-${{matrix.fortran-compiler}}-key @@ -87,7 +87,7 @@ jobs: - name: Cache SP-library v2.3.3 id: cache-sp-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/NCEPLIBS-sp key: cache-sp-fortran-${{matrix.fortran-compiler}}-key @@ -104,7 +104,7 @@ jobs: - name: Cache w3emc library v2.9.2 id: cache-w3emc-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/myw3emc key: cache-w3emc-fortran-${{matrix.fortran-compiler}}-key @@ -126,7 +126,7 @@ jobs: - name: Cache NetCDF Fortran library id: cache-netcdf-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/netcdf-fortran key: cache-netcdf-fortran-${{matrix.fortran-compiler}}-key diff --git a/.github/workflows/ci_run_scm_DEPHY.yml b/.github/workflows/ci_run_scm_DEPHY.yml index 326eeb75e..52a9993e4 100644 --- a/.github/workflows/ci_run_scm_DEPHY.yml +++ b/.github/workflows/ci_run_scm_DEPHY.yml @@ -10,6 +10,7 @@ jobs: strategy: matrix: fortran-compiler: [gfortran-12] + build-type: [Release, Debug] py-version: [3.7.13] # Environmental variables @@ -28,7 +29,7 @@ jobs: # Initial ####################################################################################### - name: Checkout SCM code (into /home/runner/work/ccpp-scm/) - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize submodules run: git submodule update --init --recursive @@ -37,7 +38,7 @@ jobs: # Python setup ####################################################################################### - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: ${{matrix.py-version}} @@ -68,7 +69,7 @@ jobs: - name: Cache bacio library v2.4.1 id: cache-bacio-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/bacio key: cache-bacio-fortran-${{matrix.fortran-compiler}}-key @@ -85,7 +86,7 @@ jobs: - name: Cache SP-library v2.3.3 id: cache-sp-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/NCEPLIBS-sp key: cache-sp-fortran-${{matrix.fortran-compiler}}-key @@ -102,7 +103,7 @@ jobs: - name: Cache w3emc library v2.9.2 id: cache-w3emc-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/myw3emc key: cache-w3emc-fortran-${{matrix.fortran-compiler}}-key @@ -122,7 +123,7 @@ jobs: - name: Cache NetCDF Fortran library v4.4.4 id: cache-netcdf-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/netcdf-fortran key: cache-netcdf-fortran-${{matrix.fortran-compiler}}-key @@ -150,13 +151,21 @@ jobs: cd ${SCM_ROOT} ./contrib/get_all_static_data.sh ./contrib/get_thompson_tables.sh - - - name: Configure build with CMake + + - name: Configure build with CMake (Release) + if: contains(matrix.build-type, 'Release') run: | cd ${SCM_ROOT}/scm mkdir bin && cd bin cmake -DCCPP_SUITES=${suites} ../src + - name: Configure build with CMake (Debug) + if: contains(matrix.build-type, 'Debug') + run: | + cd ${SCM_ROOT}/scm + mkdir bin && cd bin + cmake -DCCPP_SUITES=${suites} -DCMAKE_BUILD_TYPE=Debug ../src + - name: Build SCM run: | cd ${SCM_ROOT}/scm/bin diff --git a/.github/workflows/ci_run_scm_rts.yml b/.github/workflows/ci_run_scm_rts.yml index 89db8a0a6..319576f5d 100644 --- a/.github/workflows/ci_run_scm_rts.yml +++ b/.github/workflows/ci_run_scm_rts.yml @@ -32,7 +32,7 @@ jobs: # Initial ####################################################################################### - name: Checkout SCM code (into /home/runner/work/ccpp-scm/) - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize submodules run: git submodule update --init --recursive @@ -41,7 +41,7 @@ jobs: # Python setup ####################################################################################### - name: Set up Python - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: ${{matrix.py-version}} @@ -74,7 +74,7 @@ jobs: - name: Cache bacio library v2.4.1 id: cache-bacio-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/bacio key: cache-bacio-fortran-${{matrix.fortran-compiler}}-key @@ -91,7 +91,7 @@ jobs: - name: Cache SP-library v2.3.3 id: cache-sp-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/NCEPLIBS-sp key: cache-sp-fortran-${{matrix.fortran-compiler}}-key @@ -108,7 +108,7 @@ jobs: - name: Cache w3emc library v2.9.2 id: cache-w3emc-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/myw3emc key: cache-w3emc-fortran-${{matrix.fortran-compiler}}-key @@ -128,7 +128,7 @@ jobs: - name: Cache NetCDF Fortran library id: cache-netcdf-fortran - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: /home/runner/netcdf-fortran key: cache-netcdf-fortran-${{matrix.fortran-compiler}}-key @@ -208,7 +208,7 @@ jobs: - name: Download SCM RT baselines run: | cd ${dir_bl} - wget https://dtcenter.ucar.edu/ccpp/users/rt/rt-baselines-${{matrix.build-type}}.zip + wget https://dtcenter.ucar.edu/ccpp/rt/rt-baselines-${{matrix.build-type}}.zip unzip rt-baselines-${{matrix.build-type}}.zip - name: Compare SCM RT output to baselines @@ -223,7 +223,7 @@ jobs: path: /home/runner/work/ccpp-scm/ccpp-scm/test/scm_rt_out - name: Upload SCM RTs as GitHub Artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: rt-baselines-${{matrix.build-type}} path: /home/runner/work/ccpp-scm/ccpp-scm/test/artifact-${{matrix.build-type}} diff --git a/.github/workflows/ci_run_scm_ufs_replay.yml b/.github/workflows/ci_run_scm_ufs_replay.yml index 0bd6a161d..508d3c490 100644 --- a/.github/workflows/ci_run_scm_ufs_replay.yml +++ b/.github/workflows/ci_run_scm_ufs_replay.yml @@ -23,7 +23,7 @@ jobs: ####################################################################################### - name: Checkout SCM. - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize SCM submodules. run: git submodule update --init --recursive @@ -32,13 +32,13 @@ jobs: run: sudo apt-get update - name: Cache conda - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/conda_pkgs_dir key: conda-pkgs - name: Setup python. - uses: conda-incubator/setup-miniconda@v2 + uses: conda-incubator/setup-miniconda@v3 with: activate-environment: env_ufsreplay environment-file: environment-ufsreplay.yml @@ -51,7 +51,7 @@ jobs: ####################################################################################### - name: Cache UWM regression test output. - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${dir_rt_cache} key: ufs-rt-files @@ -72,4 +72,4 @@ jobs: ####################################################################################### # Done - ####################################################################################### \ No newline at end of file + ####################################################################################### diff --git a/.github/workflows/ci_scm_ccpp_prebuild.yml b/.github/workflows/ci_scm_ccpp_prebuild.yml index bb9e3bd17..fbcaa169d 100644 --- a/.github/workflows/ci_scm_ccpp_prebuild.yml +++ b/.github/workflows/ci_scm_ccpp_prebuild.yml @@ -11,13 +11,13 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Initialize submodules run: git submodule update --init --recursive - + - name: Set up Python 3.8.5 - uses: actions/setup-python@v3 + uses: actions/setup-python@v5 with: python-version: 3.8.5 diff --git a/ccpp/framework b/ccpp/framework index 011db4f80..ccfefcd0b 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 011db4f80a02cba6d65958ace56e8efb197be62b +Subproject commit ccfefcd0b426e011f94137031d5f7c2a4dda2659 diff --git a/ccpp/physics b/ccpp/physics index 76cf93fc2..3a1969102 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit 76cf93fc26d7b843f6d89ed0ba4799fd5f2c21f7 +Subproject commit 3a19691021b779748f4b448d3f21ab381fcc6c6e diff --git a/scm/etc/modules/hera_gnu.lua b/scm/etc/modules/hera_gnu.lua index 0e28df2d0..10d0c82f4 100644 --- a/scm/etc/modules/hera_gnu.lua +++ b/scm/etc/modules/hera_gnu.lua @@ -5,24 +5,23 @@ the NOAA RDHPC machine Hera using GNU 9.2.0 whatis([===[Loads libraries needed for building the CCPP SCM on Hera with GNU compilers ]===]) -prepend_path("MODULEPATH", "/scratch1/NCEPDEV/jcsda/jedipara/spack-stack/modulefiles") -load("cmake/3.28.1") -load("miniconda/3.9.12") +prepend_path("MODULEPATH", "/scratch2/NCEPDEV/stmp1/role.epic/installs/gnu/modulefiles") +prepend_path("MODULEPATH", "/scratch2/NCEPDEV/stmp1/role.epic/installs/openmpi/modulefiles") +prepend_path("MODULEPATH", "/scratch2/NCEPDEV/stmp1/role.epic/spack-stack/spack-stack-1.6.0_gnu13/envs/ufs-wm-srw-rocky8/install/modulefiles/Core") -prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.1/envs/unified-env-rocky8/install/modulefiles/Core") - -load("stack-gcc/9.2.0") -load("stack-openmpi/4.1.5") -load("stack-python/3.10.8") +load("stack-gcc/13.3.0") +load("stack-openmpi/4.1.6") +load("cmake/3.23.1") +load("stack-python/3.10.13") load("py-f90nml") load("py-netcdf4/1.5.8") load("netcdf-c/4.9.2") -load("netcdf-fortran/4.6.0") +load("netcdf-fortran/4.6.1") load("bacio/2.4.1") -load("sp/2.3.3") -load("w3emc") +load("sp/2.5.0") +load("w3emc/2.10.0") setenv("CMAKE_C_COMPILER","mpicc") setenv("CMAKE_CXX_COMPILER","mpicxx") diff --git a/scm/etc/modules/hera_intel.lua b/scm/etc/modules/hera_intel.lua index 6cdbf7d4c..e682bef4e 100644 --- a/scm/etc/modules/hera_intel.lua +++ b/scm/etc/modules/hera_intel.lua @@ -5,23 +5,20 @@ the NOAA RDHPC machine Hera using Intel-2021.5.0 whatis([===[Loads libraries needed for building the CCPP SCM on Hera with Intel compilers ]===]) -prepend_path("MODULEPATH", "/scratch1/NCEPDEV/jcsda/jedipara/spack-stack/modulefiles") -load("cmake/3.28.1") -load("miniconda/3.9.12") - -prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.5.1/envs/unified-env-rocky8/install/modulefiles/Core") +prepend_path("MODULEPATH", "/scratch1/NCEPDEV/nems/role.epic/spack-stack/spack-stack-1.6.0/envs/unified-env-rocky8/install/modulefiles/Core") load("stack-intel/2021.5.0") load("stack-intel-oneapi-mpi/2021.5.1") -load("stack-python/3.10.8") +load("cmake/3.23.1") +load("stack-python/3.10.13") load("py-f90nml") load("py-netcdf4/1.5.8") load("netcdf-c/4.9.2") -load("netcdf-fortran/4.6.0") +load("netcdf-fortran/4.6.1") load("bacio/2.4.1") -load("sp/2.3.3") -load("w3emc") +load("sp/2.5.0") +load("w3emc/2.10.0") setenv("CMAKE_C_COMPILER","mpiicc") setenv("CMAKE_CXX_COMPILER","mpiicpc") diff --git a/scm/src/CCPP_typedefs.meta b/scm/src/CCPP_typedefs.meta index 8208bd1d5..adffe90c2 100644 --- a/scm/src/CCPP_typedefs.meta +++ b/scm/src/CCPP_typedefs.meta @@ -344,7 +344,7 @@ dimensions = (horizontal_loop_extent,4) type = real kind = kind_phys - active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33) + active = (control_for_drag_suite_gravity_wave_drag == 2 .or. control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 22 .or. control_for_drag_suite_gravity_wave_drag == 33) [cmm_water] standard_name = surface_drag_wind_speed_for_momentum_in_air_over_water long_name = momentum exchange coefficient over water @@ -1526,7 +1526,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33) + active = (control_for_drag_suite_gravity_wave_drag == 2 .or. control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 22 .or. control_for_drag_suite_gravity_wave_drag == 33) [oa4ss] standard_name = asymmetry_of_subgrid_orography_small_scale long_name = asymmetry of subgrid height_above_mean_sea_level small scale @@ -1534,7 +1534,7 @@ dimensions = (horizontal_loop_extent,4) type = real kind = kind_phys - active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33) + active = (control_for_drag_suite_gravity_wave_drag == 2 .or. control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 22 .or. control_for_drag_suite_gravity_wave_drag == 33) [oc] standard_name = convexity_of_subgrid_orography long_name = convexity of subgrid height_above_mean_sea_level @@ -1549,7 +1549,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 33) + active = (control_for_drag_suite_gravity_wave_drag == 2 .or. control_for_drag_suite_gravity_wave_drag == 3 .or. control_for_drag_suite_gravity_wave_drag == 22 .or. control_for_drag_suite_gravity_wave_drag == 33) [olyr] standard_name = ozone_concentration_at_layer_for_radiation long_name = ozone concentration layer diff --git a/scm/src/CMakeLists.txt b/scm/src/CMakeLists.txt index a42583c6c..7fe4a5468 100644 --- a/scm/src/CMakeLists.txt +++ b/scm/src/CMakeLists.txt @@ -76,6 +76,14 @@ if(NOT MPI_Fortran_HAVE_F08_MODULE) message(FATAL_ERROR "MPI_F08 Required") endif() +find_package(MPI REQUIRED Fortran) +if(NOT MPI_Fortran_HAVE_F08_MODULE) + message(FATAL_ERROR "MPI implementation does not support the Fortran 2008 mpi_f08 interface") +endif() + +message(STATUS "MPI Include Path: ${MPI_INCLUDE_PATH}") +message(STATUS "MPI Libraries: ${MPI_LIBRARIES}") + SET(CCPP_FRAMEWORK_SRC ${CMAKE_SOURCE_DIR}/../../ccpp/framework) SET(CCPP_PHYSICS_SRC ${CMAKE_SOURCE_DIR}/../../ccpp/physics) diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index 51e6ae1ed..d1218b8da 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -302,7 +302,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: ffmm (:) => null() !< fm parameter from PBL scheme real (kind=kind_phys), pointer :: ffhh (:) => null() !< fh parameter from PBL scheme real (kind=kind_phys), pointer :: f10m (:) => null() !< fm at 10m - Ratio of sigma level 1 wind and 10m wind - real (kind=kind_phys), pointer :: rca (:) => null() !< canopy resistance + real (kind=kind_phys), pointer :: rca (:) => null() !< canopy resistance real (kind=kind_phys), pointer :: tprcp (:) => null() !< sfc_fld%tprcp - total precipitation real (kind=kind_phys), pointer :: srflag (:) => null() !< sfc_fld%srflag - snow/rain flag for precipitation real (kind=kind_phys), pointer :: slc (:,:) => null() !< liquid soil moisture @@ -2568,11 +2568,13 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%dt_cool = zero Sfcprop%qrain = zero endif + if (Model%lsm == Model%lsm_noah .or. Model%lsm == Model%lsm_noahmp) then + allocate (Sfcprop%rca (IM)) + Sfcprop%rca = clear_val + end if if (Model%lsm == Model%lsm_noah) then allocate (Sfcprop%xlaixy (IM)) - allocate (Sfcprop%rca (IM)) Sfcprop%xlaixy = clear_val - Sfcprop%rca = clear_val end if if (Model%lsm == Model%lsm_ruc .or. Model%lsm == Model%lsm_noahmp .or. & (Model%lkm>0 .and. Model%iopt_lake==Model%iopt_lake_clm)) then @@ -2733,12 +2735,13 @@ subroutine sfcprop_create (Sfcprop, IM, Model) ! end if - allocate (Sfcprop%rmol (IM )) - allocate (Sfcprop%flhc (IM )) - allocate (Sfcprop%flqc (IM )) - Sfcprop%rmol = clear_val - Sfcprop%flhc = clear_val - Sfcprop%flqc = clear_val + allocate (Sfcprop%rmol (IM )) + allocate (Sfcprop%flhc (IM )) + allocate (Sfcprop%flqc (IM )) + Sfcprop%rmol = clear_val + Sfcprop%flhc = clear_val + Sfcprop%flqc = clear_val + if (Model%do_mynnsfclay) then ! For MYNN surface layer scheme !print*,"Allocating all MYNN-sfclay variables" diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta index 2b2d485bf..617a109e1 100644 --- a/scm/src/GFS_typedefs.meta +++ b/scm/src/GFS_typedefs.meta @@ -992,7 +992,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) [fire_heat_flux] standard_name = surface_fire_heat_flux long_name = heat flux of fire at the surface @@ -1179,7 +1178,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection) + active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection .or. control_for_deep_convection_scheme == identifier_for_c3_deep_convection) [conv_act] standard_name = consecutive_calls_for_grell_freitas_convection long_name = Memory counter for GF @@ -1259,6 +1258,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys + active = (control_for_land_surface_scheme == identifier_for_noah_land_surface_scheme .or. control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) [tprcp] standard_name = nonnegative_lwe_thickness_of_precipitation_amount_on_dynamics_timestep long_name = total precipitation amount in each time step @@ -1956,7 +1956,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme) [flhc] standard_name = surface_exchange_coefficient_for_heat long_name = surface exchange coefficient for heat @@ -1964,7 +1963,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme) [flqc] standard_name = surface_exchange_coefficient_for_moisture long_name = surface exchange coefficient for moisture @@ -1972,7 +1970,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_mellor_yamada_nakanishi_niino_surface_layer_scheme) [chs2] standard_name = surface_exchange_coefficient_for_heat_at_2m long_name = exchange coefficient for heat at 2 meters @@ -2776,7 +2773,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_ocean_wave_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_ocean_wave_coupling) [v10mi_cpl] standard_name = y_wind_at_10m_for_coupling long_name = instantaneous V10m @@ -2784,7 +2781,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling .or. flag_for_ocean_wave_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_ocean_wave_coupling) [tsfci_cpl] standard_name = surface_skin_temperature_for_coupling long_name = instantaneous sfc temperature @@ -2792,7 +2789,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_surface_flux_coupling) + active = (flag_for_surface_flux_coupling .or. flag_for_chemistry_coupling .or. flag_for_land_coupling) [psurfi_cpl] standard_name = surface_air_pressure_for_coupling long_name = instantaneous sfc pressure @@ -3392,7 +3389,6 @@ dimensions = (number_of_lines_in_internal_namelist) type = character kind = len=256 - active = (number_of_lines_in_internal_namelist > 0) [logunit] standard_name = iounit_of_log long_name = fortran unit number for logfile @@ -5230,7 +5226,7 @@ long_name = model 2m diagnostics use the temperature and humidity calculated by the lake model units = flag dimensions = () - type = integer + type = logical [lkm] standard_name = control_for_lake_model_execution_method long_name = control for lake model execution: 0=no lake, 1=lake, 2=lake+nsst @@ -6734,14 +6730,12 @@ units = flag dimensions = () type = logical - active = (do_smoke_coupling) [enh_mix] standard_name = do_planetary_boundary_layer_fire_enhancement long_name = flag for rrfs smoke mynn enh vermix units = flag dimensions = () type = logical - active = (do_smoke_coupling) [smoke_dir_fdb_coef] standard_name = smoke_dust_direct_fdb_coef long_name = smoke dust direct feedback coefficents @@ -6749,7 +6743,6 @@ dimensions = (7) type = real kind = kind_phys - active = (do_smoke_coupling) [smoke_conv_wet_coef] standard_name = smoke_dust_conv_wet_coef long_name = smoke dust convetive wet scavanging coefficents @@ -6757,7 +6750,6 @@ dimensions = (3) type = real kind = kind_phys - active = (do_smoke_coupling) [dust_moist_correction] standard_name = dust_moist_correction_fengsha_dust_scheme long_name = moisture correction term for fengsha dust emission @@ -6765,7 +6757,6 @@ dimensions = () type = real kind = kind_phys - active = (do_smoke_coupling) [dust_drylimit_factor] standard_name = dust_drylimit_factor_fengsha_dust_scheme long_name = moisture correction term for drylimit in fengsha dust emission @@ -6773,14 +6764,12 @@ dimensions = () type = real kind = kind_phys - active = (do_smoke_coupling) [dust_moist_opt] standard_name = control_for_dust_soil_moisture_option long_name = smoke dust moisture parameterization 1 - fecan 2 - shao units = index dimensions = () type = integer - active = (do_smoke_coupling) [dust_alpha] standard_name = alpha_fengsha_dust_scheme long_name = alpha paramter for fengsha dust scheme @@ -6788,7 +6777,6 @@ dimensions = () type = real kind = kind_phys - active = (do_smoke_coupling) [dust_gamma] standard_name = gamma_fengsha_dust_scheme long_name = gamma paramter for fengsha dust scheme @@ -6796,7 +6784,6 @@ dimensions = () type = real kind = kind_phys - active = (do_smoke_coupling) [wetdep_ls_alpha] standard_name = alpha_for_ls_wet_depoistion long_name = alpha paramter for ls wet deposition @@ -6804,126 +6791,108 @@ dimensions = () type = real kind = kind_phys - active = (do_smoke_coupling) [ebb_dcycle] standard_name = control_for_diurnal_cycle_of_biomass_burning_emissions long_name = rrfs smoke diurnal cycle option units = index dimensions = () type = integer - active = (do_smoke_coupling) [seas_opt] standard_name = control_for_smoke_sea_salt long_name = rrfs smoke sea salt emission option units = index dimensions = () type = integer - active = (do_smoke_coupling) [dust_opt] standard_name = control_for_smoke_dust long_name = rrfs smoke dust chem option units = index dimensions = () type = integer - active = (do_smoke_coupling) [drydep_opt] standard_name = control_for_smoke_dry_deposition long_name = rrfs smoke dry deposition option units = index dimensions = () type = integer - active = (do_smoke_coupling) [coarsepm_settling] standard_name = control_for_smoke_pm_settling long_name = rrfs smoke coarsepm settling option units = index dimensions = () type = integer - active = (do_smoke_coupling) [plume_wind_eff] standard_name = option_for_wind_effects_on_smoke_plumerise long_name = wind effect plumerise option units = index dimensions = () type = integer - active = (do_smoke_coupling) [extended_sd_diags] standard_name = flag_for_extended_smoke_dust_diagnostics long_name = flag for extended smoke dust diagnostics units = flag dimensions = () type = logical - active = (do_smoke_coupling) [wetdep_ls_opt] standard_name = control_for_smoke_wet_deposition long_name = rrfs smoke large scale wet deposition option units = index dimensions = () type = integer - active = (do_smoke_coupling) [do_plumerise] standard_name = do_smoke_plumerise long_name = rrfs smoke plumerise option units = index dimensions = () type = logical - active = (do_smoke_coupling) [plumerisefire_frq] standard_name = smoke_plumerise_frequency long_name = rrfs smoke add smoke option units = min dimensions = () type = integer - active = (do_smoke_coupling) [n_dbg_lines] standard_name = smoke_debug_lines long_name = rrfs smoke add smoke option units = index dimensions = () type = integer - active = (do_smoke_coupling) [addsmoke_flag] standard_name = control_for_smoke_biomass_burning_emissions long_name = rrfs smoke add smoke option units = index dimensions = () type = integer - active = (do_smoke_coupling) [smoke_forecast] standard_name = do_smoke_forecast long_name = index for rrfs smoke forecast units = index dimensions = () type = integer - active = (do_smoke_coupling) [aero_ind_fdb] standard_name = do_smoke_aerosol_indirect_feedback long_name = flag for wfa ifa emission indirect feedback units = flag dimensions = () type = logical - active = (do_smoke_coupling) [aero_dir_fdb] standard_name = do_smoke_aerosol_direct_feedback long_name = flag for smoke and dust radiation feedback units = flag dimensions = () type = logical - active = (do_smoke_coupling) [rrfs_smoke_debug] standard_name = do_smoke_debug long_name = flag for rrfs smoke plumerise debug units = flag dimensions = () type = logical - active = (do_smoke_coupling) [do_smoke_transport] standard_name = do_smoke_conv_transport long_name = flag for rrfs smoke convective transport units = flag dimensions = () type = logical - active = (do_smoke_coupling) [ncnvcld3d] standard_name = number_of_convective_cloud_variables_in_xyz_dimensioned_restart_array long_name = number of convective 3d clouds fields diff --git a/scm/src/scm.F90 b/scm/src/scm.F90 index 9a05e974a..ff28593f0 100644 --- a/scm/src/scm.F90 +++ b/scm/src/scm.F90 @@ -176,7 +176,8 @@ subroutine scm_main_sub() cdata%blk_no = 1 cdata%thrd_no = 1 - + cdata%thrd_cnt = 1 + call physics%associate(scm_state) call physics%set(scm_input_instance, scm_state)