A simple module that computes a diffusivity proportional to the convective mass flux, for use with diffusive convective momentum transport closure
diffusivity = c*W*L W = M/rho (m/sec) M = convective mass flux (kg/(m2 sec)) rho - density of air <p> L = depth of convecting layer (m) c = normalization constant = diff_norm/g (diff_norm is a namelist parameter; the factor of g = acceleration of gravity here is an historical artifact) <p> for further discussion see cu_mo_trans.pdf
constants_mod
fms_mod
Diag_Manager_Mod
Time_Manager_Mod
call cu_mo_trans_init ( axes, Time )
axes | axes identifier needed by diag manager [integer] |
Time | time at initialization needed by diag manager [time_type] |
call cu_mo_trans_end
call cu_mo_trans (is, js, Time, mass_flux, t, & p_half, p_full, z_half, z_full, diff)
is |
[integer] |
js | horizontal domain on which computation to be performed is
(is:is+size(t,1)-1,ie+size(t,2)-1) in global coordinates
(used by diag_manager only) [integer] |
Time | current time, used by diag_manager [time_type] |
mass_flux | convective mass flux (Kg/(m**2 s)), dimension(:,:,:), 3rd dimension is
vertical level (top down) -- defined at interfaces, so that
size(mass_flux,3) = size(p_half,3); entire field processed;
all remaining fields are 3 dimensional;
size of first two dimensions must confrom for all variables [real] |
t | temperature (K) at full levels, size(t,3) = size(p_full,3) [real] |
p_half | pressure at interfaces (Pascals)
size(p_half,3) = size(p_full,3) + 1 [real] |
p_full | pressure at full levels (levels at which temperature is defined) [real] |
z_half | height at half levels (meters); size(z_half,3) = size(p_half,3) [real] |
z_full | height at full levels (meters); size(z_full,3) = size(p_full,3) [real] |
diff | kinematic diffusivity (m*2/s); defined at half levels
size(diff,3) = size(p_half,3) [real] |
call diffusive_cu_mo_trans (is, js, Time, mass_flux, t, & p_half, p_full, z_half, z_full, diff)
diffusivity = c*W*L W = M/rho (m/sec) M = convective mass flux (kg/(m2 sec)) rho - density of air L = depth of convecting layer (m) c = normalization constant = diff_norm/g (diff_norm is a namelist parameter; the factor of g here is an historical artifact) for further discussion see cu_mo_trans.ps
is |
[integer] |
js | horizontal domain on which computation to be performed is
(is:is+size(t,1)-1,ie+size(t,2)-1) in global coordinates
(used by diag_manager only) [integer] |
Time | current time, used by diag_manager [time_type] |
mass_flux | convective mass flux (Kg/(m**2 s)), dimension(:,:,:), 3rd dimension is
vertical level (top down) -- defined at interfaces, so that
size(mass_flux,3) = size(p_half,3); entire field processed;
all remaining fields are 3 dimensional;
size of first two dimensions must confrom for all variables [real] |
t | temperature (K) at full levels, size(t,3) = size(p_full,3) [real] |
p_half | pressure at interfaces (Pascals)
size(p_half,3) = size(p_full,3) + 1 [real] |
p_full | pressure at full levels (levels at which temperature is defined) [real] |
z_half | height at half levels (meters); size(z_half,3) = size(p_half,3) [real] |
z_full | height at full levels (meters); size(z_full,3) = size(p_full,3) [real] |
diff | kinematic diffusivity (m*2/s); defined at half levels
size(diff,3) = size(p_half,3) [real] |