Giter VIP home page Giter VIP logo

nems's People

Contributors

aerorahul avatar binli2337 avatar climbfuji avatar deniseworthen avatar domheinzeller avatar dusanjovic-noaa avatar jessicameixner-noaa avatar junwang-noaa avatar llpcarson avatar mark-a-potts avatar minsukji-noaa avatar ratkovasic-noaa avatar rmontuoro avatar samueltrahannoaa avatar theurich avatar uturuncoglu avatar valbonakunkel-noaa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nems's Issues

conditional in prep_ocn fails for DATM

In prep_ocn, the merges to ocean are currently active only if i2a exists. This does not work for the DATM because there is no i2a active. In addition, the prep_ocn merges are for a->o and i->o and so the correct conditional should be that a->o and i->o are active.

remove use of mediator atm-ocean fluxes

FV3 now exports the sensible, latent, momentum and net LW fluxes to the mediator for use in prep_ocn as only water values. The use of the mediator-calculated atmosphere-ocean fluxes in icy water can now be removed for the FV3_CPLD case. The use of the mediator calculated atm-ocean fluxes is retained for use when the DATM component replaces FV3.

Update NEMS to include CDEPS component

To build the mom6_cice6_cdeps application, the following two files need to be updated:

  1. NEMS/src/module_EARTH_GRID_COM.F90
  2. CMakeLists.txt at ufs-weather-model application level

NEMS hash 044400a8eea19d1ce991a2adaa0b369ed0e067c7 and head of develop broken for GNU compilers

For the same reason as several times before, the current hash of NEMS in ufs-weather-model (044400a) doesn't work with the GNU compilers:

module_EARTH_GRID_COMP.F90:2625:41:

 2625 |         standardNames = (/"ice_fraction",&
      |                                         1
Error: Different CHARACTER lengths (12/21) in array constructor at (1)
make[1]: *** [module_EARTH_GRID_COMP.o] Error 1

The offending code is

      call NUOPC_FieldDictionarySetSyno( &
        standardNames = (/"ice_fraction",&
                          "sea_ice_concentration"/), rc=rc)
      if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
        line=__LINE__, &
        file=__FILE__)) &
        return  ! bail out

but it needs to be padded so that the character lengths match (see the other examples in the same file just below)

      call NUOPC_FieldDictionarySetSyno( &
        standardNames = (/"ice_fraction         ",&
                          "sea_ice_concentration"/), rc=rc)
      if (ESMF_LogFoundError(rcToCheck=rc, msg=ESMF_LOGERR_PASSTHRU, &
        line=__LINE__, &
        file=__FILE__)) &
        return  ! bail out

I checked the head of develop and the bug is still there (slightly different line numbers). I will be submitting a PR to fix this.

Can you please watch out for these types of errors and notify the developers? Thanks.

remove the NUOPC_CompSpecialize

In the PR #76, a code change is added in src/module_EARTH_GRID_COMP.F90 to match that is used in GFSv16 implementation branch. The line will be removed in future commit.

negative crc32 hash causing errors in MPI_Comm_split (module_NEMS_Rusage.F90)

I encountered this issue (as stated in the title) when testing the ADC-WW3-NWM-NEMS coupling app on the UNC Hatteras cluster.
In module_NEMS_Rusage.F90 and in the subroutine color_by_hash, the Fortran version of crc32 hash returned from the CRC algorithm (nems_c_rusage.c) is negative. I think the problem is that the C function returns the crc32 hash as an unsigned integer data type (uint32_t), but in Fortran, the only available datatype is the signed integer (int32_t).
I am not sure if this indicates a bug in my compiler (openmpi 3.0.0)'s Fortran 2003 support or not (as noted at the beginning of this module). I also wonder if taking the absolute value of the negative Fortran hash can be a workaround for this machine/compiler dependent issue.

Update NEMS for CDEPS

To include CDEPS_DATM component in ufs-weather-model, the following NEMS files need to be updated:

  1. The module_EARTH_GRID_COM.F90 file needs to be updated to include "FRONT_CDEPS_DATM" for Setservices.

  2. Since both CMEPS and CDEPS use PIO, the pio initialization calls need to be added to MAIN_NEMS.F90.

  3. CMakeLists.txt file needs to be updated for new C preprocessor macros.

Port to S4

NEMS should be ported to SSEC's S4 cluster to enable UFS and DA research efforts on that system.

Field name changes for cmeps integration

Two field names for the coupled model need to be changed for final cmeps integration. The field names are:

mean_zonal_moment_flx => mean_zonal_moment_flx_atm
mean_merid_moment_flx => mean_merid_moment_flx_atm

This change needs to be implemented with a corresponding change in FV3 (# 89)

These changes will break baselines for the coupled model only because of name changes in the mediator restart files. Otherwise no changes are expected.

Dual build capabilty

For testing CMEPS integration, we require the ability to build NEMS using a second mediator (CMEPS) in place of the NEMS mediator.

clean up unused code and options

  • The module_MEDIATOR, module_MEDIATOR_methods and the module_MEDIATOR_SpaceWeather should be removed.

  • Various legacy ifdef settings (eg. ifdef CMEPS, if ESMF_VERSION_MAJOR < 8) as well as non-existent or legacy models (ifdef FRONT_GSM) should be removed.

  • The large block of code for adding entries to the Field Dictionary should be removed and the fd_nems.yaml used instead.

  • The bail-out error checking lines should be simplified by adding a similar ChkErr function present in the MOM6 NUOPC cap and CMEPS.

remove ice-ocean merges in prep_atm

The following fields are being exported to FV3 as merges between ice and ocean in the prep_atm phase of the mediator.

mean_sensi_heat_flx
mean_laten_heat_flx
mean_up_lw_flx
mean_evap_rate
mean_zonal_moment_flx
mean_merid_moment_flx

FV3 requires these fields to be sent as ice-only fields.

Remove PE_MEMBER logic that is no longer relevant

The PE_MEMBER logic in NEMS and the model_configure is no longer relevant and should be removed. This remains historically from a prior version of NEMS that supported ensembles in the same MPI world.

See here:

CALL ESMF_ConfigGetAttribute(config = CF_NEMS &

and here:

,petlist = PETLIST(1:PE_MEMBER) & !<-- Element I's PE list

In all cases now, the NEMS EARTH DRIVER runs across all PETs and so specification of the petList parameter to ESMF_GridCompCreate() is not required.

The recommended approach is to remove all PE_MEMBER logic from NEMS.

This also allows for removal of PE_MEMBER01: inside model_configure. Its presence there is confusing anyway since that file is a config file for the atmosphere, and not the overall NEMS level.

nems driver cleanup, pt 2

The NEMS driver code requires a second round of cleanup:

  • remove ifdef IBM code that was required for compiling ufs-weather with gnu. Error code which was generated when these functions were removed was :
/scratch2/NCEPDEV/nwprod/hpc-stack/src/hpc-stack/pkg/upp-upp_v10.0.6/sorc/ncep_post.fd/PROCESS.f:81: undefined reference to `timef_'
  • potentially remove module_NEMS_GRID_COMP.F90 with a new MAIN_NEMS.F90 that instantiates and runs Earth grid comp instead of NEMS grid comp (@DusanJovic-NOAA has provided this to test)

  • potentially remove the need for the module_NEMS_UTILS.F90 by moving the reading of the logical controlling PET logging.

  • clean up the attribute settings. Additional code was added early in the cmeps integration project in order to allow the use of the CIME driver (required by the need to use CESM's CICE code at that time). The reading and adding of the attributes should be looked at again to remove anything no longer required.

add cice6 build

A component_CICE6.mk file and an option to use a CICE6 as a component in module_EARTH_GRID_COMP.F90 needs to be added. These will not impact any other build or baseline.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.