Procedures

ProcedureLocationProcedure TypeDescription
checkinput_outputSubroutine

Handles any errors from the NetCDF API.

check_diagnosticsdiagnosticsSubroutine

Prints global means of eddy kinetic energy and temperature. Also stops the integration if the computed diagnostics are outside of allowable ranges.

cloudsshortwave_radiationSubroutine

Compute cloud-top level and cloud cover

couple_land_atmland_modelSubroutine

Exchanges fluxes between land and atmosphere.

couple_sea_atmsea_modelSubroutine
couple_sea_landcouplerSubroutine

Exchange fluxes between atmosphere and land/sea.

datetime_equaldateFunction

Checks whether two datetimes are equal.

diagnose_convectionconvectionSubroutine

Diagnose convectively unstable gridboxes

Read more…
do_horizontal_diffusionhorizontal_diffusionInterface
do_horizontal_diffusion_2dhorizontal_diffusionFunction

Adds horizontal diffusion tendency of field to spectral tendency fdt using damping coefficients dmp and dmp1.

do_horizontal_diffusion_3dhorizontal_diffusionFunction

Adds horizontal diffusion tendency of field to spectral tendency fdt at all model levels using damping coefficients dmp and dmp1.

fillsfboundariesSubroutine

Replace missing values in surface fields.

Read more…
first_steptime_steppingSubroutine
forchkboundariesSubroutine

Check consistency of surface fields with land-sea mask and set undefined values to a constant (to avoid over/underflow).

forin5interpolationSubroutine

Performs nonlinear, mean-conserving interpolation of monthly-mean forcing fields.

forintinterpolationSubroutine

Performs linear interpolation of monthly-mean forcing fields.

fourier_dirfourierFunction

Transforms grid-point data to Fourier coefficients.

fourier_invfourierFunction

Transforms Fourier coefficients to grid-point data.

gen_spptspptFunction

Generate grid point space SPPT pattern distribution.

get_convection_tendenciesconvectionSubroutine

Compute convective fluxes of dry static energy and moisture using a simplified mass-flux scheme

get_downward_longwave_rad_fluxeslongwave_radiationSubroutine

Compute the downward flux of long-wave radiation

get_geopotentialgeopotentialFunction

Computes spectral geopotential from spectral temperature T and spectral topography phis, as in GFDL Climate Group GCM.

get_grid_point_tendenciestendenciesSubroutine
get_large_scale_condensation_tendencieslarge_scale_condensationSubroutine

Compute large-scale condensation and associated tendencies of temperature and moisture

get_legendre_polylegendreFunction

Compute associated Legendre polynomials at given latitude.

get_physical_tendenciesphysicsSubroutine

Compute physical parametrization tendencies for u, v, t, q and add them to the dynamical grid-point tendencies

get_qsathumidityFunction

Computes saturation specific humidity.

get_shortwave_rad_fluxesshortwave_radiationSubroutine

Compute the absorption of shortwave radiation and initialize arrays for longwave-radiation routines

get_spectral_tendenciestendenciesSubroutine
get_surface_fluxessurface_fluxesSubroutine

Compute surface fluxes of momentum, energy and moisture, and define surface skin temperature from energy balance

get_tendenciestendenciesSubroutine
get_upward_longwave_rad_fluxeslongwave_radiationSubroutine

Compute the absorption of upward long-wave radiation fluxes

get_vertical_diffusion_tendvertical_diffusionSubroutine

Compute tendencies of momentum, energy and moisture due to vertical diffusion and shallow convection

get_weightslegendreFunction

Compute Gaussian weights for direct Legendre transform

get_zonal_average_fieldsshortwave_radiationSubroutine

Compute zonally-averaged fields to be used in the computation of short-wave absorption

gradspectralSubroutine
grid_to_specspectralFunction
implicit_termsimplicitSubroutine

Correct tendencies for implicit gravity wave model

initializeinitializationSubroutine

Initializes everything.

initialize_boundariesboundariesSubroutine

Initialize boundary conditions (land-sea mask, surface geopotential and surface albedo).

initialize_couplercouplerSubroutine

Initialize both land and sea models.

initialize_datedateSubroutine

Initializes model date and calendar.

initialize_fourierfourierSubroutine

Initializes the Fourier transforms.

initialize_from_rest_stateprognosticsSubroutine

Initializes all spectral variables starting from a reference atmosphere.

initialize_geometrygeometrySubroutine

Initializes all of the model geometry variables.

initialize_geopotentialgeopotentialSubroutine

Initializes the arrays used for geopotential calculations

initialize_horizontal_diffusionhorizontal_diffusionSubroutine

Initializes the arrays used for horizontal diffusion.

initialize_implicitimplicitSubroutine

Initialize constants for implicit computation of horizontal diffusion and gravity waves.

Read more…
initialize_legendrelegendreSubroutine

Initializes Legendre transforms and constants used for other subroutines that manipulate spherical harmonics.

initialize_paramsparamsSubroutine

Initializes user-defined parameters from namelist file.

initialize_physicsphysicsSubroutine
initialize_prognosticsprognosticsSubroutine

Initializes all spectral variables starting from either a reference atmosphere or a restart file.

initialize_spectralspectralSubroutine
invmatrix_inversionSubroutine
inverse_laplacianspectralFunction
land_model_initland_modelSubroutine

Initializes land model.

laplacianspectralFunction
legendre_dirlegendreFunction

Computes direct Legendre transformation.

legendre_invlegendreFunction

Computes inverse Legendre transformation.

load_boundary_fileinput_outputInterface

Interface for reading boundary files.

load_boundary_file_2dinput_outputFunction

Loads the given 2D field from the given boundary file.

load_boundary_file_one_month_from_longinput_outputFunction

Loads the given 2D field at the given month from the given boundary file of a given length.

Read more…
load_boundary_file_one_month_from_yearinput_outputFunction

Loads the given 2D field at the given month from the given monthly boundary file.

lubksbmatrix_inversionSubroutine
ludcmpmatrix_inversionSubroutine
newdatedateSubroutine

Updates the current datetime and related date variables.

obs_sstasea_modelSubroutine
outputinput_outputSubroutine

Writes a snapshot of all prognostic variables to a NetCDF file.

print_speedy_titleinitializationSubroutine

Prints SPEEDY.f90 banner.

radb2fftpack.f90Subroutine
radb3fftpack.f90Subroutine
radb4fftpack.f90Subroutine
radb5fftpack.f90Subroutine
radbgfftpack.f90Subroutine
radf2fftpack.f90Subroutine
radf3fftpack.f90Subroutine
radf4fftpack.f90Subroutine
radf5fftpack.f90Subroutine
radfgfftpack.f90Subroutine
radsetlongwave_radiationSubroutine

Compute energy fractions in longwave bands as a function of temperature

randnspptFunction

Generates a random number drawn for the specified normal distribution.

rel_hum_to_spec_humhumiditySubroutine

Converts relative humidity to specific humidity, and also returns saturation specific humidity.

rfftb1fftpack.f90Subroutine
rfftf1fftpack.f90Subroutine
rffti1fftpack.f90Subroutine
run_land_modelland_modelSubroutine

Integrates slab land-surface model for one day.

run_sea_modelsea_modelSubroutine
sea_domainsea_modelSubroutine
sea_model_initsea_modelSubroutine
set_forcingforcingSubroutine

Compute forcing fields for the current date and correction terms for horizontal diffusion

set_orog_land_sfc_dragsurface_fluxesSubroutine
setgamforcingSubroutine

Compute reference lapse rate as a function of latitude and date

solarshortwave_radiationSubroutine
spec_hum_to_rel_humhumiditySubroutine

Converts specific humidity to relative humidity, and also returns saturation specific humidity.

spec_to_gridspectralFunction
spectral_truncationboundariesSubroutine

Compute a spectrally-filtered grid-point field.

steptime_steppingSubroutine
step_field_2dtime_steppingFunction
step_field_3dtime_steppingFunction
time_seedspptSubroutine

Seeds RNG from system clock.

trunctspectralSubroutine
uvspecspectralSubroutine
vdsspectralSubroutine
vdspecspectralSubroutine
call~~graph~~CallGraph proc~first_step first_step proc~step step proc~first_step->proc~step proc~initialize_implicit initialize_implicit proc~first_step->proc~initialize_implicit proc~initialize_boundaries initialize_boundaries proc~spectral_truncation spectral_truncation proc~initialize_boundaries->proc~spectral_truncation interface~load_boundary_file load_boundary_file proc~initialize_boundaries->interface~load_boundary_file proc~initialize_geometry initialize_geometry proc~diagnose_convection diagnose_convection proc~step_field_3d step_field_3d proc~step->proc~step_field_3d proc~step_field_2d step_field_2d proc~step->proc~step_field_2d interface~do_horizontal_diffusion do_horizontal_diffusion proc~step->interface~do_horizontal_diffusion proc~get_tendencies get_tendencies proc~step->proc~get_tendencies proc~rffti1 rffti1 proc~initialize_physics initialize_physics proc~radset radset proc~inv inv proc~ludcmp ludcmp proc~inv->proc~ludcmp proc~get_large_scale_condensation_tendencies get_large_scale_condensation_tendencies proc~radf5 radf5 proc~radb5 radb5 float float proc~initialize_implicit->float proc~gen_sppt gen_sppt proc~randn randn proc~gen_sppt->proc~randn proc~spec_to_grid spec_to_grid proc~gen_sppt->proc~spec_to_grid proc~land_model_init land_model_init proc~forchk forchk proc~land_model_init->proc~forchk proc~land_model_init->interface~load_boundary_file proc~do_horizontal_diffusion_3d do_horizontal_diffusion_3d proc~do_horizontal_diffusion_2d do_horizontal_diffusion_2d proc~do_horizontal_diffusion_3d->proc~do_horizontal_diffusion_2d proc~legendre_inv legendre_inv proc~radf4 radf4 proc~radbg radbg proc~couple_sea_atm couple_sea_atm proc~run_sea_model run_sea_model proc~couple_sea_atm->proc~run_sea_model proc~forint forint proc~couple_sea_atm->proc~forint proc~forin5 forin5 proc~couple_sea_atm->proc~forin5 proc~radb3 radb3 proc~fillsf fillsf proc~fillsf->float proc~get_spectral_tendencies get_spectral_tendencies proc~laplacian laplacian proc~get_spectral_tendencies->proc~laplacian proc~get_geopotential get_geopotential proc~get_spectral_tendencies->proc~get_geopotential proc~initialize_fourier initialize_fourier proc~initialize_fourier->proc~rffti1 proc~get_grid_point_tendencies get_grid_point_tendencies proc~get_grid_point_tendencies->proc~laplacian proc~get_grid_point_tendencies->proc~spec_to_grid proc~grid_to_spec grid_to_spec proc~get_grid_point_tendencies->proc~grid_to_spec proc~get_grid_point_tendencies->proc~get_geopotential proc~spectral_truncation->proc~spec_to_grid proc~spectral_truncation->proc~grid_to_spec proc~implicit_terms implicit_terms proc~get_weights get_weights proc~couple_land_atm couple_land_atm proc~run_land_model run_land_model proc~couple_land_atm->proc~run_land_model proc~couple_land_atm->proc~forint proc~couple_land_atm->proc~forin5 proc~legendre_dir legendre_dir proc~fourier_inv fourier_inv proc~rfftb1 rfftb1 proc~fourier_inv->proc~rfftb1 proc~fourier_dir fourier_dir proc~rfftf1 rfftf1 proc~fourier_dir->proc~rfftf1 proc~fourier_dir->float proc~step_field_3d->proc~step_field_2d proc~obs_ssta obs_ssta proc~obs_ssta->interface~load_boundary_file proc~radfg radfg proc~set_orog_land_sfc_drag set_orog_land_sfc_drag proc~initialize_legendre initialize_legendre proc~initialize_legendre->proc~get_weights proc~get_legendre_poly get_legendre_poly proc~initialize_legendre->proc~get_legendre_poly proc~initialize_legendre->float proc~sea_model_init sea_model_init proc~sea_model_init->proc~forchk proc~sea_model_init->interface~load_boundary_file proc~trunct trunct proc~step_field_2d->proc~trunct proc~get_physical_tendencies get_physical_tendencies proc~get_physical_tendencies->proc~get_large_scale_condensation_tendencies proc~get_physical_tendencies->proc~gen_sppt proc~get_convection_tendencies get_convection_tendencies proc~get_physical_tendencies->proc~get_convection_tendencies proc~get_downward_longwave_rad_fluxes get_downward_longwave_rad_fluxes proc~get_physical_tendencies->proc~get_downward_longwave_rad_fluxes proc~get_vertical_diffusion_tend get_vertical_diffusion_tend proc~get_physical_tendencies->proc~get_vertical_diffusion_tend proc~get_shortwave_rad_fluxes get_shortwave_rad_fluxes proc~get_physical_tendencies->proc~get_shortwave_rad_fluxes proc~get_physical_tendencies->proc~spec_to_grid proc~clouds clouds proc~get_physical_tendencies->proc~clouds proc~get_surface_fluxes get_surface_fluxes proc~get_physical_tendencies->proc~get_surface_fluxes proc~get_physical_tendencies->float proc~load_boundary_file_2d load_boundary_file_2d nf90_get_var nf90_get_var proc~load_boundary_file_2d->nf90_get_var nf90_close nf90_close proc~load_boundary_file_2d->nf90_close nf90_inq_varid nf90_inq_varid proc~load_boundary_file_2d->nf90_inq_varid nf90_open nf90_open proc~load_boundary_file_2d->nf90_open proc~get_convection_tendencies->proc~diagnose_convection proc~setgam setgam proc~couple_sea_land couple_sea_land proc~couple_sea_land->proc~couple_sea_atm proc~couple_sea_land->proc~couple_land_atm proc~set_forcing set_forcing proc~set_forcing->proc~radset proc~set_forcing->proc~set_orog_land_sfc_drag proc~set_forcing->proc~setgam proc~get_qsat get_qsat proc~set_forcing->proc~get_qsat proc~set_forcing->proc~grid_to_spec proc~get_zonal_average_fields get_zonal_average_fields proc~set_forcing->proc~get_zonal_average_fields proc~check_diagnostics check_diagnostics proc~inverse_laplacian inverse_laplacian proc~check_diagnostics->proc~inverse_laplacian proc~vdspec vdspec proc~vds vds proc~vdspec->proc~vds proc~vdspec->proc~grid_to_spec proc~time_seed time_seed proc~spec_hum_to_rel_hum spec_hum_to_rel_hum proc~spec_hum_to_rel_hum->proc~get_qsat proc~datetime_equal datetime_equal interface~load_boundary_file->proc~load_boundary_file_2d proc~load_boundary_file_one_month_from_long load_boundary_file_one_month_from_long interface~load_boundary_file->proc~load_boundary_file_one_month_from_long proc~load_boundary_file_one_month_from_year load_boundary_file_one_month_from_year interface~load_boundary_file->proc~load_boundary_file_one_month_from_year proc~initialize_from_rest_state initialize_from_rest_state proc~output output proc~initialize_from_rest_state->proc~output proc~initialize_from_rest_state->proc~grid_to_spec proc~print_speedy_title print_speedy_title proc~get_upward_longwave_rad_fluxes get_upward_longwave_rad_fluxes interface~do_horizontal_diffusion->proc~do_horizontal_diffusion_3d interface~do_horizontal_diffusion->proc~do_horizontal_diffusion_2d proc~load_boundary_file_one_month_from_long->nf90_get_var proc~load_boundary_file_one_month_from_long->nf90_close proc~load_boundary_file_one_month_from_long->nf90_inq_varid proc~load_boundary_file_one_month_from_long->nf90_open proc~lubksb lubksb proc~radf3 radf3 proc~rel_hum_to_spec_hum rel_hum_to_spec_hum proc~rel_hum_to_spec_hum->proc~get_qsat proc~sea_domain sea_domain proc~sea_domain->float proc~output->proc~spec_to_grid nf90_create nf90_create proc~output->nf90_create nf90_def_dim nf90_def_dim proc~output->nf90_def_dim nf90_def_var nf90_def_var proc~output->nf90_def_var nf90_put_att nf90_put_att proc~output->nf90_put_att proc~output->nf90_close nf90_enddef nf90_enddef proc~output->nf90_enddef nf90_put_var nf90_put_var proc~output->nf90_put_var proc~spec_to_grid->proc~legendre_inv proc~spec_to_grid->proc~fourier_inv proc~initialize_horizontal_diffusion initialize_horizontal_diffusion proc~initialize_horizontal_diffusion->float proc~radf2 radf2 proc~grad grad proc~initialize_date initialize_date proc~initialize_date->float proc~grid_to_spec->proc~legendre_dir proc~grid_to_spec->proc~fourier_dir proc~initialize_coupler initialize_coupler proc~initialize_coupler->proc~land_model_init proc~initialize_coupler->proc~couple_sea_atm proc~initialize_coupler->proc~couple_land_atm proc~initialize_coupler->proc~sea_model_init proc~get_tendencies->proc~get_spectral_tendencies proc~get_tendencies->proc~get_grid_point_tendencies proc~get_tendencies->proc~implicit_terms proc~initialize_spectral initialize_spectral proc~initialize_spectral->proc~initialize_fourier proc~initialize_spectral->proc~initialize_legendre proc~initialize_spectral->float proc~initialize_params initialize_params proc~load_boundary_file_one_month_from_year->nf90_get_var proc~load_boundary_file_one_month_from_year->nf90_close proc~load_boundary_file_one_month_from_year->nf90_inq_varid proc~load_boundary_file_one_month_from_year->nf90_open proc~initialize initialize proc~initialize->proc~first_step proc~initialize->proc~initialize_boundaries proc~initialize->proc~initialize_geometry proc~initialize->proc~initialize_physics proc~initialize->proc~set_forcing proc~initialize->proc~print_speedy_title proc~initialize->proc~initialize_horizontal_diffusion proc~initialize->proc~initialize_date proc~initialize->proc~initialize_coupler proc~initialize->proc~initialize_spectral proc~initialize->proc~initialize_params proc~initialize_geopotential initialize_geopotential proc~initialize->proc~initialize_geopotential proc~initialize_prognostics initialize_prognostics proc~initialize->proc~initialize_prognostics proc~get_legendre_poly->float proc~solar solar proc~get_zonal_average_fields->proc~solar proc~radb2 radb2 proc~check check nf90_strerror nf90_strerror proc~check->nf90_strerror proc~radb4 radb4 proc~newdate newdate proc~newdate->float proc~uvspec uvspec proc~get_surface_fluxes->proc~get_qsat proc~initialize_prognostics->proc~initialize_from_rest_state program~speedy speedy program~speedy->proc~step program~speedy->proc~couple_sea_land program~speedy->proc~set_forcing program~speedy->proc~datetime_equal program~speedy->proc~initialize program~speedy->proc~newdate
Help