Coder Social home page Coder Social logo

wseviour / gfdl-fms Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lukelbd/gfdl-fms

0.0 0.0 0.0 8.89 MB

๐ŸŒŽ Direct edits of the GFDL dry dynamical core FMS model code

Home Page: https://lukelbd.github.io/gfdl-fms

Perl 1.31% HTML 19.42% Shell 0.73% C 2.70% Fortran 57.07% C++ 15.97% Pawn 2.65% Assembly 0.08% Makefile 0.01% Python 0.05%

gfdl-fms's Introduction

GFDL dry core modifications

This repository contains changes to the dry dynamical core spectral model from the GFDL Flexible Modeling System. The original model can be found here.

Additions

Various features were added to the model, described in detail below and in the namelist file input.nml. Note that the hs_forcing_mod module and hs_forcing.f90 file are renamed to forcing_mod and forcing.f90, and the gaussian_topog_mod module and gaussian_topog.f90 file are renamed to idealized_topog_mod and idealized_topog.f90. This renaming reflects the availability of new model features. Also, the forcing subroutine now accepts longitudes as well as latitudes.

  • vert_coordinate.f90 implements the Polvani and Kushner method for constructing levels with high stratospheric resolution directly. It can be requested using vert_coord_option='pk_sigma', analogous to vert_coord_option='even_sigma', in the &spectral_dynamics_nml namelist (see input.nml).
  • ECMWF hybrid coordinate data is located in levels, and implemented as a &vert_coordinate_nml namelist in the levels_ecmwf_60.nml file. This namelist can be copied into input.nml and applied by setting vert_coord_option='input' in the &spectral_dynamics_nml namelist (see below).
  • forcing.f90 adds options to apply static diabatic heating perturbations from Butler at el. (2010) and Lindgren et al. (2018) (various &forcing_nml options), and the option to load locked diabatic heating from a file instead of using Newtonian damping (locked_heating=.true.).
  • forcing.f90 adds new forcing options other than Held and Suarez (1994): the Polvani and Kushner (2002) 'pk' scheme (teq_mode='pk'), and a modified Polvani and Kushner scheme (teq_mode='pkmod'), with stratospheric equilibrium temperatures conforming to the height at which the stratospheric equilibrium temperature is reached. It also includes an option to change the damping timescale in the stratosphere (damp_mode='pk' or damp_mode='pkmod'), beginning where the stratospheric equilibrium temp is reached.
  • forcing.f90 adds various options for modifying the damping scheme: specifying surface equilibrium temperature from its global mean surface value rather than its equatorial surface value (surf_shneider=.true. and e.g. t_mean=300 instead of surf_schneider=.false. and e.g. t_0=315), changing the exponent to which the cosine latitude is raised to control how boundary layer damping intensity changes with latitude (e.g. exp_b=4), and changing the latitude of the most intense meridional equilibrium temperature gradients (e.g. exp_h=-2 for equatorward motion, exp_h=2 for poleward motion).
  • idealized_topog.f90 adds a new sinusoidal topography option, configurable with the &idealized_topog_nml namelist.

Documentation

The full, original model documentation is published on github-pages. Use the links at the top of each page to navigate between sections! Below are some important notes regarding the documentation.

Input

The model can be given two types of input files in the INPUT directory.

  • Topography file topography.data.nc, containing a zsurf variable with longitude and latitude dimensions.
  • Locked heating file heating.data.nc, containing a t variable or tdt variable with longitude, latitude, and level dimensions. This heating replaces the thermal damping term.

Truncation

The following is a table of valid truncation numbers with the corresponding recommended number of latitudes and cores for parallelization. Remember that to avoid aliasing of the harmonics, N >= (3M + 1)/2, where N is the number of latitudes and M is the truncation number.

Truncation Number of latitudes Recommended cores (latitudes per file)
42 64 16 (4)
63 96 24 (4)
85 128 32 (4)
106 160 40 (4), 80 (2)
159 240 60 (4)
170 256 64 (4)
266 400 100 (4)

gfdl-fms's People

Contributors

lukelbd avatar

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.