Git Product home page Git Product logo

gmcore's Introduction

Introduction

Grid-point Multiple-Conservation dynamical cORE

Check barotropic test results here.

Status

  • Parallelization using MPI:
    • 1D latitudional decomposition (done)
    • 2D decomposition (partially done)
    • Optimize for X86 (~2021.04)
  • Nesting at middle and low latitudes (~2021.11).
  • Acceleration using GPU (~?).
  • Baroclinic version (~2021.02).
    • Hydrostatic baroclinic version (done)
      • Rossby-Haurwitz wave test
      • Mountain induced wave test
      • Steady state test
      • Baroclinic wave test
      • Held-Suarez test
    • Nonhydrostatic baroclinic version (~2021.02)
      • X-Z version (done)
      • Quasi-2D mountain wave on reduced sphere (done)
      • Circular mountain wave on reduced sphere (done)
      • Internal gravity wave (done)
  • Advection module (done)
  • Incorporation with physics parameterisation (2022.07-2022.12).
  • Data assimilation (~?).

Usage

First make sure you have installed netCDF library, and set NETCDF_ROOT environment variable to it. Then clone the repository:

$ git clone https://gitee.com/dongli85/GMCORE gmcore
$ cd gmcore
$ git submodule update --init

You could build the model by following:

$ cd build
$ FC=mpiifort cmake ..
$ make -j8

There is a Python script run_tests.py, which will clone the testbed repository, and run several tests, but it assumes MPI to be installed or SLURM job manager is available:

$ ./run_tests.py -w <work_directory> --slurm -q <job_queue> -n <process_number> --ntasks-per-node <n>

It will take some time to run the tests. When the tests are finished, cd to <work_directory>, and use some visualization tools, such as Panoply, to view the results.

Authors

You are welcome to join our team to develop a robust global model!

gmcore's People

Stargazers

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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gmcore's Issues

Use classic Coriolis interpolation weights

In classic Coriolis force calculation, we use the following formulas:
image
which imply the weights:

full_tangent_wgt(1,j) = half_cos_lat(j-1) / full_cos_lat(j) * 0.25d0
full_tangent_wgt(2,j) = half_cos_lat(j  ) / full_cos_lat(j) * 0.25d0
half_tangent_wgt(1,j) = 0.25d0
half_tangent_wgt(2,j) = 0.25d0

compared with the new weights:

full_tangent_wgt(1,j) = vertex_lon_distance(j-1) / cell_lon_distance(j) * 0.25d0
full_tangent_wgt(2,j) = vertex_lon_distance(j  ) / cell_lon_distance(j) * 0.25d0
half_tangent_wgt(1,j) = vertex_lat_distance(j  ) / cell_lat_distance(j) * 0.25d0
half_tangent_wgt(2,j) = vertex_lat_distance(j+1) / cell_lat_distance(j) * 0.25d0

The results of mountain wave case are:
mz upwind pv_pole_stokes classic_coriolis 180x90 h0

mz upwind pv_pole_stokes 180x90 h0

So apparent difference!

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.