Coder Social home page Coder Social logo

Comments (7)

DWesl avatar DWesl commented on July 26, 2024

You mention sophisticated functions to perform vertical interpolation while preserving mass between pressure levels. Could you elaborate on what those functions are?

from global-workflow.

zhanglikate avatar zhanglikate commented on July 26, 2024

You mention sophisticated functions to perform vertical interpolation while preserving mass between pressure levels. Could you elaborate on what those functions are?

@rmontuoro is more familiar with the python script vertical interpolation script of https://github.com/NOAA-EMC/global-workflow/blob/develop/scripts/exgfs_aero_init_aerosol.py , who can help to elaborate more details about it.

from global-workflow.

DWesl avatar DWesl commented on July 26, 2024

It looks like that script passes the processing to another:

merge_script_pattern = "{ush_gfs}/merge_fv3_aerosol_tile.py"

subprocess.run([merge_script, atm_file, tracer_file, core_file, ctrl_file, rest_file, tracer_list_file, temp_file], check=True)

which currently does the aforementioned rescaling here:
# read pressure layer thickness from restart file
delp = rest_file["delp"][0, :]

dp = np.zeros(delp.shape)
for k in range(0, dp.shape[0]):
dp[k, :, :] = ak[k + 1] - ak[k] + psfc * (bk[k + 1] - bk[k])

scale_factor = delp / dp

base_file[variable_name][0, :, :] = 0.
base_file[variable_name][1:, :, :] = scale_factor * variable[0, :, :, :]

It looks like that script rescales the CO2 mixing ratio to keep the mass per layer constant and sets the layer not available in the restart file to zero.

Given the difference in number of levels between the restart file and the file the model reads in, would setting base_file[variable_name][0, :, :] = base_file[variable_name][1, :, :] after line 113 make sense? If the mass differences printed on lines 105-120 match the mass differences found in the experiment, the zeroed layer is probably not the problem. (EDIT: This is adding a zero on the 1 Pa end of the model, so that in itself would not cause much of a difference, though the lower-CO2 air aloft being moved surfaceward in the model-internal-to-restart-file transition might still be a concern)

I am reminded that, if the surface pressure changes, it is possible to conserve the CO2 mass per unit area or mole fraction/mixing ratio values but not both (that is, keeping the mole fraction values at 400ppm will result in the column CO2 mass changing with the surface pressure).

The issue mentions a proposed solution, described in the accompanying presentation, that achieves better mass conservation than the existing method. I would like more details on this new method.

As an alternative, is there an option to have the model runs be three or five days at a stretch rather than one? That would result in fewer shocks to the system from new meteorological data, with more time as a free run, which doesn't have those problems.

EDIT: Just remembered that runs into problems. Is there an analysis-nudging option?

from global-workflow.

yangfanglin avatar yangfanglin commented on July 26, 2024

Daniel, thank you for checking. Looks like the rescaling approach needs further consideration.

I noticed also on slide 3 of Jian He's ppt there is notation Ptop=0. Please note FV3 models cannot have a model top at zero. Ptop should be 20 Pa. If there is a zero pressure in gfs_data.tile[1-6].nc it should have never been used in any model integration. Not sure if this has played any role in interpolation and calculation of mass.

from global-workflow.

Related Issues (20)

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.