SCALE-RM
Data Types | Functions/Subroutines | Variables
scale_bulkflux Module Reference

module Surface bulk flux More...

Functions/Subroutines

subroutine, public bulkflux_setup
 

Variables

procedure(bc), pointer, public bulkflux => NULL()
 

Detailed Description

module Surface bulk flux

Description
calculation of surface bulk flux
Author
Team SCALE
History
NAMELIST
  • PARAM_BULKFLUX
    nametypedefault valuecomment
    BULKFLUX_TYPE character(len=H_SHORT) 'B91W01'
    BULKFLUX_ITR_MAX integer 100 maximum iteration number
    BULKFLUX_RES_MIN real(RP) 1.0E+0_RP minimum value of residual
    BULKFLUX_ERR_MIN real(RP) 1.0E-2_RP minimum value of error
    BULKFLUX_WSCF real(RP) 1.2_RP empirical scaling factor of Wstar (Beljaars 1994)
    BULKFLUX_UABS_MIN real(RP) 1.0E-2_RP minimum of Uabs [m/s]
    BULKFLUX_RIB_MIN real(RP) 1.0E-4_RP minimum of RiB [no unit]
    BULKFLUX_WSTAR_MIN real(RP) 1.0E-4_RP minimum of W* [m/s]

History Output
No history output

Function/Subroutine Documentation

◆ bulkflux_setup()

subroutine, public scale_bulkflux::bulkflux_setup ( )

Definition at line 113 of file scale_bulkflux.F90.

References bulkflux, scale_const::const_cpdry, scale_const::const_eps, scale_const::const_grav, scale_const::const_karman, scale_const::const_pre00, scale_const::const_rdry, scale_stdio::io_fid_conf, scale_stdio::io_fid_log, scale_stdio::io_l, scale_stdio::io_lnml, dc_log::log(), and scale_process::prc_mpistop().

Referenced by mod_rm_driver::scalerm().

113  use scale_process, only: &
115  implicit none
116 
117  namelist / param_bulkflux / &
118  bulkflux_type, &
119  bulkflux_itr_max, &
120  bulkflux_res_min, &
121  bulkflux_err_min, &
122  bulkflux_wscf, &
123  bulkflux_uabs_min, &
124  bulkflux_rib_min, &
125  bulkflux_wstar_min
126 
127  integer :: ierr
128  !---------------------------------------------------------------------------
129 
130  if( io_l ) write(io_fid_log,*)
131  if( io_l ) write(io_fid_log,*) '++++++ Module[BULKFLUX] / Categ[COUPLER] / Origin[SCALElib]'
132 
133  !--- read namelist
134  rewind(io_fid_conf)
135  read(io_fid_conf,nml=param_bulkflux,iostat=ierr)
136 
137  if( ierr < 0 ) then !--- missing
138  if( io_l ) write(io_fid_log,*) '*** Not found namelist. Default used.'
139  elseif( ierr > 0 ) then !--- fatal error
140  write(*,*) 'xxx Not appropriate names in namelist PARAM_BULKFLUX. Check!'
141  call prc_mpistop
142  endif
143  if( io_lnml ) write(io_fid_log,nml=param_bulkflux)
144 
145  select case( bulkflux_type )
146  case ( 'U95' )
147  if( io_l ) write(io_fid_log,*) '*** Scheme for surface bulk flux : Uno et al.(1995)'
148  bulkflux => bulkflux_u95
149  case ( 'B91W01' )
150  if( io_l ) write(io_fid_log,*) '*** Scheme for surface bulk flux : Beljaars (1991) and Wilson (2001)'
151  bulkflux => bulkflux_b91w01
152  case default
153  write(*,*) ' xxx Unsupported TYPE. STOP'
154  call prc_mpistop
155  end select
156 
157  return
subroutine, public prc_mpistop
Abort MPI.
logical, public io_l
output log or not? (this process)
Definition: scale_stdio.F90:59
procedure(bc), pointer, public bulkflux
module PROCESS
logical, public io_lnml
output log or not? (for namelist, this process)
Definition: scale_stdio.F90:60
integer, public io_fid_conf
Config file ID.
Definition: scale_stdio.F90:55
integer, public io_fid_log
Log file ID.
Definition: scale_stdio.F90:56
Here is the call graph for this function:
Here is the caller graph for this function:

Variable Documentation

◆ bulkflux

procedure(bc), pointer, public scale_bulkflux::bulkflux => NULL()