38 character(len=LENMODELNAME) :: modelname
39 character(len=LENCOMPONENTNAME) :: modeltype
40 character(len=LINELENGTH) :: modelfname
41 character(len=LINELENGTH) :: nc_fname
43 integer(I4B) :: nctype
44 integer(I4B) :: disenum
59 logical(LGP) :: active
82 integer(I4B),
intent(in) :: iout
85 character(len=LENMEMPATH) :: modelnam_mempath, model_mempath
86 integer(I4B),
pointer :: disenum
90 do n = 1, model_dynamic_pkgs%Count()
92 allocate (export_model)
101 model_mempath =
create_mem_path(component=model_dynamic_input%modelname, &
104 call mem_setptr(disenum,
'DISENUM', model_mempath)
107 call export_model%init(model_dynamic_input, disenum, iout)
111 modelnam_mempath, found)
116 modelnam_mempath, found)
130 class(*),
pointer :: obj
135 if (
associated(obj))
then
139 call export_model%post_prepare()
148 class(*),
pointer :: obj
153 if (
associated(obj))
then
157 call export_model%post_step()
166 class(*),
pointer :: obj
171 if (
associated(obj))
then
175 call export_model%destroy()
176 deallocate (export_model)
177 nullify (export_model)
188 subroutine init(this, loaders, disenum, iout)
192 integer(I4B),
intent(in) :: disenum
193 integer(I4B),
intent(in) :: iout
194 this%loaders => loaders
195 this%modelname = loaders%modelname
196 this%modeltype = loaders%modeltype
197 this%modelfname = loaders%modelfname
200 this%disenum = disenum
202 nullify (this%nc_export)
210 if (
associated(this%nc_export))
then
211 call this%nc_export%export_input()
220 if (
associated(this%nc_export))
then
221 call this%nc_export%step()
230 if (
associated(this%nc_export))
then
231 call this%nc_export%destroy()
232 deallocate (this%nc_export)
233 nullify (this%nc_export)
242 class(*),
pointer :: obj
251 integer(I4B),
intent(in) :: idx
253 class(*),
pointer :: obj
258 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_mesh2d
netcdf ugrid layered mesh export
@, public netcdf_undef
undefined netcdf export type
This module contains simulation variables.
character(len=linelength) idm_context
A generic heterogeneous doubly-linked list.
abstract type for model netcdf export type