38 character(len=LENMODELNAME) :: modelname
39 character(len=LENCOMPONENTNAME) :: modeltype
40 character(len=LINELENGTH) :: modelfname
42 integer(I4B) :: nctype
43 integer(I4B) :: disenum
58 logical(LGP) :: active
82 integer(I4B),
intent(in) :: iout
85 character(len=LENMEMPATH) :: modelnam_mempath, model_mempath
86 integer(I4B),
pointer :: disenum
87 character(len=LINELENGTH) :: exportstr
91 do n = 1, model_dynamic_pkgs%Count()
94 allocate (export_model)
103 model_mempath =
create_mem_path(component=model_dynamic_input%modelname, &
106 call mem_setptr(disenum,
'DISENUM', model_mempath)
109 call export_model%init(model_dynamic_input, disenum, iout)
112 call mem_set_value(exportstr,
'EXPORT_NETCDF', modelnam_mempath, found)
114 if (exportstr ==
'STRUCTURED')
then
131 class(*),
pointer :: obj
137 if (
associated(obj))
then
141 call export_model%post_prepare()
151 class(*),
pointer :: obj
157 if (
associated(obj))
then
161 call export_model%post_step()
171 class(*),
pointer :: obj
177 if (
associated(obj))
then
181 call export_model%destroy()
182 deallocate (export_model)
183 nullify (export_model)
194 subroutine init(this, loaders, disenum, iout)
198 integer(I4B),
intent(in) :: disenum
199 integer(I4B),
intent(in) :: iout
201 this%loaders => loaders
202 this%modelname = loaders%modelname
203 this%modeltype = loaders%modeltype
204 this%modelfname = loaders%modelfname
206 this%disenum = disenum
209 nullify (this%nc_export)
218 if (
associated(this%nc_export))
then
219 call this%nc_export%export_input()
229 if (
associated(this%nc_export))
then
230 call this%nc_export%step()
240 if (
associated(this%nc_export))
then
241 call this%nc_export%destroy()
242 deallocate (this%nc_export)
243 nullify (this%nc_export)
254 class(*),
pointer :: obj
265 integer(I4B),
intent(in) :: idx
268 class(*),
pointer :: obj
275 if (
associated(obj))
then
This module contains simulation constants.
integer(i4b), parameter linelength
maximum length of a standard line
integer(i4b), parameter lencomponentname
maximum length of a component name
integer(i4b), parameter lenmodelname
maximum length of the model name
integer(i4b), parameter lenmempath
maximum length of the memory path
This module defines variable data types.
character(len=lenmempath) function create_mem_path(component, subcomponent, context)
returns the path to the memory object
This module contains the ModelExportModule.
subroutine post_step(this)
model export container post step actions
subroutine, public modelexports_post_prepare()
export model list post prepare step
subroutine destroy(this)
destroy model export container
subroutine, public modelexports_destroy()
destroy export model list
subroutine, public modelexports_post_step()
export model list post step
type(listtype), public export_models
subroutine post_prepare(this)
model export container post prepare step actions
class(exportmodeltype) function, pointer, public get_export_model(idx)
get model export object by index
subroutine add_export_model(export_model)
add model export object to list
subroutine, public modelexports_create(iout)
create export container variable for all local models
logical(lgp) function, public nc_export_active()
is netcdf export configured for any model
This module contains the NCModelExportModule.
@, public netcdf_structured
netcdf structrured export
@, public netcdf_undef
undefined netcdf export type
@, public netcdf_ugrid
netcdf mesh export
This module contains simulation variables.
character(len=linelength) idm_context
A generic heterogeneous doubly-linked list.
abstract type for model netcdf export type