4a. Input to mcarats executable (a): Structure of the namelist input file...
The namelist input file controls general configurations of the experiment. Other data files are optional, and used for large array data such as scattering phase functions and surface and 3-D atmospheric properties.
Structure of the namelist input file
The namelist file should contain one initialization part and job specification parts for multiple jobs:
nitialization part
Job specification part for job 1
Job specification part for job 2
Job specification part for job 3
...
The following subsections describe details of each input parameters for the namelists and the external files. There are many input parameters. In addition, this document could not be complete. To learn how to set up the parameters for the user's purpose, the easiest way might be to explore the example cases, for which input data files are included in the package.
Cases are provided for 3-D inhomogeneous, overcast stratocumulus cloud over homogeneous surface
Remote sensing ("rs") experiment: calculation of pixel-averaged, reflected radiances at the top of atmosphere (TOA)
Camera image ("ci") experiment: calculation of local angle-averaged radiances looking the 3-D scene
Heating rate ("hr") experiment: calculation of 3-D distributions of pixel-averaged fluxes and volume-averaged heating rates
Full list of input variables
namelist /mcarWld_nml_init/Wld_mverb, Wld_jseed, Wld_mbswap, Wld_mtarget, Wld_moptim, Wld_njob
namelist /mcarSca_nml_init/Sca_inpfile, Sca_mfmt, Sca_npf, Sca_nangi, Sca_nanci, &
& Sca_ipsta, Sca_ipwid, Sca_nchi, Sca_qtfmax, Sca_ntg
namelist /mcarAtm_nml_init/Atm_inpfile, Atm_mfmt, Atm_iz3l, Atm_nx, Atm_ny, Atm_nz, &
& Atm_nz3, Atm_nkd, Atm_np1d, Atm_np3d, Atm_mtprof, Atm_nqlay
namelist /mcarSfc_nml_init/Sfc_inpfile, Sfc_mfmt, Sfc_mbrdf, Sfc_nxb, Sfc_nyb, Sfc_nsco, Sfc_nsuz
namelist /mcarSrc_nml_init/Src_nsrc
namelist /mcarFlx_nml_init/Flx_mflx, Flx_mhrt, Flx_diff0, Flx_diff1
namelist /mcarRad_nml_init/Rad_mrkind, Rad_mpmap, Rad_mplen, Rad_nrad, Rad_nxr, &
& Rad_nyr, Rad_nwf, Rad_ntp, Rad_tpmin, Rad_tpmax
namelist /mcarVis_nml_init/Vis_mrend, Vis_epserr, Vis_fpsmth, Vis_nqhem, Vis_nqlay, Vis_fatten
namelist /mcarPho_nml_init/Pho_iso_SS, Pho_iso_tru, Pho_iso_max, Pho_wsml, Pho_wmin, Pho_wmax, &
& Pho_wfac, Pho_pfpeak
namelist /mcarWld_nml_job/Wld_rmlcf, Wld_nplcf, Wld_dtaumin
namelist /mcarAtm_nml_job/Atm_idread, Atm_dx, Atm_dy, Atm_zgrd0, Atm_tmp1d, Atm_ext1d, Atm_omg1d, &
& Atm_apf1d, Atm_wkd0, Atm_abs1d, Atm_fext1d, Atm_fext3d, Atm_fabs1d, Atm_fabs3d, &
& Atm_taumin, Atm_fsupg, Atm_fsupi, Atm_nzzsup
namelist /mcarSfc_nml_job/Sfc_idread, Sfc_tmp, Sfc_mtype, Sfc_param, Sfc_nqpot, Sfc_rrmax, &
& Sfc_rrexp, Sfc_nudsm, Sfc_nurpv, Sfc_nulsrt
namelist /mcarSrc_nml_job/Src_wlen, Src_dwlen, Src_flx, Src_qmax, Src_the, Src_phi, Src_xpos, &
& Src_ypos, Src_zloc, Src_apsize, Src_mtype, Src_mphi
namelist /mcarRad_nml_job/Rad_mrproj, Rad_difr0, Rad_difr1, Rad_zetamin, Rad_frmod, Rad_xpos, &
& Rad_ypos, Rad_wfunc0, Rad_zloc, Rad_rmin0, Rad_rmax0, Rad_the, Rad_phi, Rad_psi, Rad_umax, &
& Rad_vmax, Rad_qmax, Rad_apsize
In the followings, variable names, types and shapes of variables, default values, and explanations are described.
Notes on namelist input
The namelist I/O is a feature of Fortran 90. The namelists for mcarats input include many parameters, but the the user does not need to specify all variables' values. This makes the Fortran's namelist flexible and easy to use. For example, when the user gives no value for every variables, then default initialization data will be used. Thus, content of the input file could be as the followings:
&mcarWld_nml_init /
&mcarSca_nml_init /
&mcarAtm_nml_init /
&mcarSfc_nml_init /
&mcarSrc_nml_init /
&mcarFlx_nml_init /
&mcarRad_nml_init /
&mcarVis_nml_init /
&mcarPho_nml_init /
&mcarWld_nml_job /
&mcarAtm_nml_job /
&mcarSfc_nml_job /
&mcarSrc_nml_job /
&mcarRad_nml_job /
Default initialization data are defined in source codes in ./src/mcarats/mcar*.?90, and they are customizable before compiling.
The user can partially set values for one variable in the namelist. For example, a sentence,
Atm_abs1d(1:10,1)=4.0e-5, 3.0e-5, 2.0e-5, 1.0e-5, 5*1.0e-6
sets values for a part of the 2-D array variable Atm_abs1d(iz,ikd), which may be declared as a very large array in the source code.
Another feature of Fortran namelist is a freedom of ordering of each member variable in a namelist block. Any order is acceptable in one namelist block. For details, see Fortran language reference for the compiler.