MOM6
mom_document::doc_param Interface Reference

Detailed Description

Definition at line 37 of file MOM_document.F90.

Private functions

subroutine doc_param_none (doc, varname, desc, units)
 
subroutine doc_param_logical (doc, varname, desc, units, val, default, layoutParam)
 
subroutine doc_param_logical_array (doc, varname, desc, units, vals, default, layoutParam)
 
subroutine doc_param_int (doc, varname, desc, units, val, default, layoutParam)
 
subroutine doc_param_int_array (doc, varname, desc, units, vals, default, layoutParam)
 
subroutine doc_param_real (doc, varname, desc, units, val, default)
 
subroutine doc_param_real_array (doc, varname, desc, units, vals, default)
 
subroutine doc_param_char (doc, varname, desc, units, val, default, layoutParam)
 
subroutine doc_param_time (doc, varname, desc, units, val, default, layoutParam)
 

Functions and subroutines

◆ doc_param_char()

subroutine mom_document::doc_param::doc_param_char ( type(doc_type), pointer  doc,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  desc,
character(len=*), intent(in)  units,
character(len=*), intent(in)  val,
character(len=*), intent(in), optional  default,
logical, intent(in), optional  layoutParam 
)
private

Definition at line 302 of file MOM_document.F90.

302  type(doc_type), pointer :: doc
303  character(len=*), intent(in) :: varname, desc, units
304  character(len=*), intent(in) :: val
305  character(len=*), optional, intent(in) :: default
306  logical, optional, intent(in) :: layoutparam
307 ! This subroutine handles parameter documentation for character strings.
308  character(len=mLen) :: mesg
309  logical :: equalsdefault
310 
311  if (.not. (is_root_pe() .and. associated(doc))) return
312  call open_doc_file(doc)
313 
314  if (doc%filesAreOpen) then
315  mesg = define_string(doc,varname,'"'//trim(val)//'"',units)
316 
317  equalsdefault = .false.
318  if (present(default)) then
319  if (trim(val) == trim(default)) equalsdefault = .true.
320  mesg = trim(mesg)//' default = "'//trim(adjustl(default))//'"'
321  endif
322 
323  if (mesghasbeendocumented(doc, varname, mesg)) return ! Avoid duplicates
324  call writemessageanddesc(doc, mesg, desc, equalsdefault, layoutparam=layoutparam)
325  endif
326 

◆ doc_param_int()

subroutine mom_document::doc_param::doc_param_int ( type(doc_type), pointer  doc,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  desc,
character(len=*), intent(in)  units,
integer, intent(in)  val,
integer, intent(in), optional  default,
logical, intent(in), optional  layoutParam 
)
private

Definition at line 177 of file MOM_document.F90.

177  type(doc_type), pointer :: doc
178  character(len=*), intent(in) :: varname, desc, units
179  integer, intent(in) :: val
180  integer, optional, intent(in) :: default
181  logical, optional, intent(in) :: layoutparam
182 ! This subroutine handles parameter documentation for integers.
183  character(len=mLen) :: mesg
184  character(len=doc%commentColumn) :: valstring
185  logical :: equalsdefault
186 
187  if (.not. (is_root_pe() .and. associated(doc))) return
188  call open_doc_file(doc)
189 
190  if (doc%filesAreOpen) then
191  valstring = int_string(val)
192  mesg = define_string(doc,varname,valstring,units)
193 
194  equalsdefault = .false.
195  if (present(default)) then
196  if (val == default) equalsdefault = .true.
197  mesg = trim(mesg)//" default = "//(trim(int_string(default)))
198  endif
199 
200  if (mesghasbeendocumented(doc, varname, mesg)) return ! Avoid duplicates
201  call writemessageanddesc(doc, mesg, desc, equalsdefault, layoutparam=layoutparam)
202  endif

◆ doc_param_int_array()

subroutine mom_document::doc_param::doc_param_int_array ( type(doc_type), pointer  doc,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  desc,
character(len=*), intent(in)  units,
integer, dimension(:), intent(in)  vals,
integer, intent(in), optional  default,
logical, intent(in), optional  layoutParam 
)
private

Definition at line 206 of file MOM_document.F90.

206  type(doc_type), pointer :: doc
207  character(len=*), intent(in) :: varname, desc, units
208  integer, intent(in) :: vals(:)
209  integer, optional, intent(in) :: default
210  logical, optional, intent(in) :: layoutparam
211 ! This subroutine handles parameter documentation for arrays of integers.
212  integer :: i
213  character(len=mLen) :: mesg
214  character(len=mLen) :: valstring
215  logical :: equalsdefault
216 
217  if (.not. (is_root_pe() .and. associated(doc))) return
218  call open_doc_file(doc)
219 
220  if (doc%filesAreOpen) then
221  valstring = int_string(vals(1))
222  do i=2,min(size(vals),128)
223  valstring = trim(valstring)//", "//trim(int_string(vals(i)))
224  enddo
225 
226  mesg = define_string(doc,varname,valstring,units)
227 
228  equalsdefault = .false.
229  if (present(default)) then
230  equalsdefault = .true.
231  do i=1,size(vals) ; if (vals(i) /= default) equalsdefault = .false. ; enddo
232  mesg = trim(mesg)//" default = "//(trim(int_string(default)))
233  endif
234 
235  if (mesghasbeendocumented(doc, varname, mesg)) return ! Avoid duplicates
236  call writemessageanddesc(doc, mesg, desc, equalsdefault, layoutparam=layoutparam)
237  endif
238 

◆ doc_param_logical()

subroutine mom_document::doc_param::doc_param_logical ( type(doc_type), pointer  doc,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  desc,
character(len=*), intent(in)  units,
logical, intent(in)  val,
logical, intent(in), optional  default,
logical, intent(in), optional  layoutParam 
)
private

Definition at line 99 of file MOM_document.F90.

99  type(doc_type), pointer :: doc
100  character(len=*), intent(in) :: varname, desc, units
101  logical, intent(in) :: val
102  logical, optional, intent(in) :: default
103  logical, optional, intent(in) :: layoutparam
104 ! This subroutine handles parameter documentation for logicals.
105  character(len=mLen) :: mesg
106  logical :: equalsdefault
107 
108  if (.not. (is_root_pe() .and. associated(doc))) return
109  call open_doc_file(doc)
110 
111  if (doc%filesAreOpen) then
112  if (val) then
113  mesg = define_string(doc,varname,string_true,units)
114  else
115  mesg = undef_string(doc,varname,units)
116  endif
117 
118  equalsdefault = .false.
119  if (present(default)) then
120  if (val .eqv. default) equalsdefault = .true.
121  if (default) then
122  mesg = trim(mesg)//" default = "//string_true
123  else
124  mesg = trim(mesg)//" default = "//string_false
125  endif
126  endif
127 
128  if (mesghasbeendocumented(doc, varname, mesg)) return ! Avoid duplicates
129  call writemessageanddesc(doc, mesg, desc, equalsdefault, layoutparam=layoutparam)
130  endif

◆ doc_param_logical_array()

subroutine mom_document::doc_param::doc_param_logical_array ( type(doc_type), pointer  doc,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  desc,
character(len=*), intent(in)  units,
logical, dimension(:), intent(in)  vals,
logical, intent(in), optional  default,
logical, intent(in), optional  layoutParam 
)
private

Definition at line 134 of file MOM_document.F90.

134  type(doc_type), pointer :: doc
135  character(len=*), intent(in) :: varname, desc, units
136  logical, intent(in) :: vals(:)
137  logical, optional, intent(in) :: default
138  logical, optional, intent(in) :: layoutparam
139 ! This subroutine handles parameter documentation for arrays of logicals.
140  integer :: i
141  character(len=mLen) :: mesg
142  character(len=mLen) :: valstring
143  logical :: equalsdefault
144 
145  if (.not. (is_root_pe() .and. associated(doc))) return
146  call open_doc_file(doc)
147 
148  if (doc%filesAreOpen) then
149  if (vals(1)) then ; valstring = string_true ; else ; valstring = string_false ; endif
150  do i=2,min(size(vals),128)
151  if (vals(i)) then
152  valstring = trim(valstring)//", "//string_true
153  else
154  valstring = trim(valstring)//", "//string_false
155  endif
156  enddo
157 
158  mesg = define_string(doc,varname,valstring,units)
159 
160  equalsdefault = .false.
161  if (present(default)) then
162  equalsdefault = .true.
163  do i=1,size(vals) ; if (vals(i) .neqv. default) equalsdefault = .false. ; enddo
164  if (default) then
165  mesg = trim(mesg)//" default = "//string_true
166  else
167  mesg = trim(mesg)//" default = "//string_false
168  endif
169  endif
170 
171  if (mesghasbeendocumented(doc, varname, mesg)) return ! Avoid duplicates
172  call writemessageanddesc(doc, mesg, desc, equalsdefault, layoutparam=layoutparam)
173  endif

◆ doc_param_none()

subroutine mom_document::doc_param::doc_param_none ( type(doc_type), pointer  doc,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  desc,
character(len=*), intent(in)  units 
)
private

Definition at line 79 of file MOM_document.F90.

79  type(doc_type), pointer :: doc
80  character(len=*), intent(in) :: varname, desc, units
81 ! This subroutine handles parameter documentation with no value.
82  integer :: numspc
83  character(len=mLen) :: mesg
84 
85  if (.not. (is_root_pe() .and. associated(doc))) return
86  call open_doc_file(doc)
87 
88  if (doc%filesAreOpen) then
89  numspc = max(1,doc%commentColumn-8-len_trim(varname))
90  mesg = "#define "//trim(varname)//repeat(" ",numspc)//"!"
91  if (len_trim(units) > 0) mesg = trim(mesg)//" ["//trim(units)//"]"
92 
93  if (mesghasbeendocumented(doc, varname, mesg)) return ! Avoid duplicates
94  call writemessageanddesc(doc, mesg, desc)
95  endif

◆ doc_param_real()

subroutine mom_document::doc_param::doc_param_real ( type(doc_type), pointer  doc,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  desc,
character(len=*), intent(in)  units,
real, intent(in)  val,
real, intent(in), optional  default 
)
private

Definition at line 242 of file MOM_document.F90.

242  type(doc_type), pointer :: doc
243  character(len=*), intent(in) :: varname, desc, units
244  real, intent(in) :: val
245  real, optional, intent(in) :: default
246 ! This subroutine handles parameter documentation for reals.
247  character(len=mLen) :: mesg
248  character(len=doc%commentColumn) :: valstring
249  logical :: equalsdefault
250 
251  if (.not. (is_root_pe() .and. associated(doc))) return
252  call open_doc_file(doc)
253 
254  if (doc%filesAreOpen) then
255  valstring = real_string(val)
256  mesg = define_string(doc,varname,valstring,units)
257 
258  equalsdefault = .false.
259  if (present(default)) then
260  if (val == default) equalsdefault = .true.
261  mesg = trim(mesg)//" default = "//trim(real_string(default))
262  endif
263 
264  if (mesghasbeendocumented(doc, varname, mesg)) return ! Avoid duplicates
265  call writemessageanddesc(doc, mesg, desc, equalsdefault)
266  endif

◆ doc_param_real_array()

subroutine mom_document::doc_param::doc_param_real_array ( type(doc_type), pointer  doc,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  desc,
character(len=*), intent(in)  units,
real, dimension(:), intent(in)  vals,
real, intent(in), optional  default 
)
private

Definition at line 270 of file MOM_document.F90.

270  type(doc_type), pointer :: doc
271  character(len=*), intent(in) :: varname, desc, units
272  real, intent(in) :: vals(:)
273  real, optional, intent(in) :: default
274 ! This subroutine handles parameter documentation for arrays of reals.
275  integer :: i
276  character(len=mLen) :: mesg
277  character(len=mLen) :: valstring
278  logical :: equalsdefault
279 
280  if (.not. (is_root_pe() .and. associated(doc))) return
281  call open_doc_file(doc)
282 
283  if (doc%filesAreOpen) then
284  valstring = trim(real_array_string(vals(:)))
285 
286  mesg = define_string(doc,varname,valstring,units)
287 
288  equalsdefault = .false.
289  if (present(default)) then
290  equalsdefault = .true.
291  do i=1,size(vals) ; if (vals(i) /= default) equalsdefault = .false. ; enddo
292  mesg = trim(mesg)//" default = "//trim(real_string(default))
293  endif
294 
295  if (mesghasbeendocumented(doc, varname, mesg)) return ! Avoid duplicates
296  call writemessageanddesc(doc, mesg, desc, equalsdefault)
297  endif
298 

◆ doc_param_time()

subroutine mom_document::doc_param::doc_param_time ( type(doc_type), pointer  doc,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  desc,
character(len=*), intent(in)  units,
type(time_type), intent(in)  val,
type(time_type), intent(in), optional  default,
logical, intent(in), optional  layoutParam 
)
private

Definition at line 377 of file MOM_document.F90.

377  type(doc_type), pointer :: doc
378  character(len=*), intent(in) :: varname, desc, units
379  type(time_type), intent(in) :: val
380  type(time_type), optional, intent(in) :: default
381  logical, optional, intent(in) :: layoutparam
382 ! This subroutine handles parameter documentation for time-type variables.
383 ! ### This needs to be written properly!
384  integer :: numspc
385  character(len=mLen) :: mesg
386  logical :: equalsdefault
387 
388  if (.not. (is_root_pe() .and. associated(doc))) return
389  call open_doc_file(doc)
390 
391  equalsdefault = .false.
392  if (doc%filesAreOpen) then
393  numspc = max(1,doc%commentColumn-18-len_trim(varname))
394  mesg = "#define "//trim(varname)//" Time-type"//repeat(" ",numspc)//"!"
395  if (len_trim(units) > 0) mesg = trim(mesg)//" ["//trim(units)//"]"
396 
397  if (mesghasbeendocumented(doc, varname, mesg)) return ! Avoid duplicates
398  call writemessageanddesc(doc, mesg, desc, equalsdefault, layoutparam=layoutparam)
399  endif
400 

The documentation for this interface was generated from the following file: