MODFLOW 6  version 6.8.0.dev0
USGS Modular Hydrologic Model
idmloggermodule::idm_export Interface Reference
Collaboration diagram for idmloggermodule::idm_export:
Collaboration graph

Private Member Functions

subroutine idm_export_int1d (p_mem, varname, mempath, shapestr, iout)
 Create export file int1d. More...
 
subroutine idm_export_int2d (p_mem, varname, mempath, shapestr, iout)
 Create export file int2d. More...
 
subroutine idm_export_int3d (p_mem, varname, mempath, shapestr, iout)
 Create export file int3d. More...
 
subroutine idm_export_dbl1d (p_mem, varname, mempath, shapestr, iout)
 Create export file dbl1d. More...
 
subroutine idm_export_dbl2d (p_mem, varname, mempath, shapestr, iout)
 Create export file dbl2d. More...
 
subroutine idm_export_dbl3d (p_mem, varname, mempath, shapestr, iout)
 Create export file dbl3d. More...
 

Detailed Description

Definition at line 33 of file IdmLogger.f90.

Member Function/Subroutine Documentation

◆ idm_export_dbl1d()

subroutine idmloggermodule::idm_export::idm_export_dbl1d ( real(dp), dimension(:), intent(in), contiguous  p_mem,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  mempath,
character(len=*), intent(in)  shapestr,
integer(i4b), intent(in)  iout 
)
private

export layered dbl1d parameters with NODES shape

Parameters
[in]p_mem1d dbl array
[in]varnamevariable name
[in]mempathvariable memory path
[in]shapestrdfn shape string

Definition at line 530 of file IdmLogger.f90.

533  real(DP), dimension(:), contiguous, intent(in) :: p_mem !< 1d dbl array
534  character(len=*), intent(in) :: varname !< variable name
535  character(len=*), intent(in) :: mempath !< variable memory path
536  character(len=*), intent(in) :: shapestr !< dfn shape string
537  integer(I4B), intent(in) :: iout
538  integer(I4B), dimension(:), pointer, contiguous :: model_shape
539  real(DP), dimension(:, :, :), pointer, contiguous :: dbl3d
540  real(DP), dimension(:, :), pointer, contiguous :: dbl2d
541  integer(I4B), dimension(3) :: dis3d_shape
542  integer(I4B), dimension(2) :: dis2d_shape
543  integer(I4B), pointer :: distype
544  character(LENMEMPATH) :: input_mempath
545  character(LENCOMPONENTNAME) :: comp, subcomp
546  integer(I4B) :: i, j, k, inunit, export_dim
547  logical(LGP) :: is_layered
548 
549  ! set pointer to DISENUM and MODEL_SHAPE
550  call split_mem_path(mempath, comp, subcomp)
551  input_mempath = create_mem_path(component=comp, context=idm_context)
552  call mem_setptr(distype, 'DISENUM', input_mempath)
553  call mem_setptr(model_shape, 'MODEL_SHAPE', input_mempath)
554 
555  ! set export_dim
556  export_dim = distype_export_dim(distype, shapestr, is_layered)
557 
558  ! create export file(s)
559  select case (export_dim)
560  case (3)
561  ! set reshape array
562  dis3d_shape(1) = model_shape(3)
563  dis3d_shape(2) = model_shape(2)
564  ! allocate and reshape
565  dis3d_shape(3) = model_shape(1)
566  allocate (dbl3d(dis3d_shape(1), dis3d_shape(2), dis3d_shape(3)))
567  dbl3d = reshape(p_mem, dis3d_shape)
568  do k = 1, dis3d_shape(3)
569  ! write export files 3D array
570  inunit = create_export_file(varname, mempath, k, iout)
571  do i = 1, model_shape(2)
572  write (inunit, '(*(G0.10, " "))') (dbl3d(j, i, k), j=1, &
573  dis3d_shape(1))
574  end do
575  close (inunit)
576  end do
577  ! cleanup
578  deallocate (dbl3d)
579  case (2)
580  ! set reshape array
581  dis2d_shape(1) = model_shape(2)
582  dis2d_shape(2) = model_shape(1)
583  ! allocate and reshape
584  allocate (dbl2d(dis2d_shape(1), dis2d_shape(2)))
585  dbl2d = reshape(p_mem, dis2d_shape)
586  if (is_layered) then
587  ! write layered export files 2D array
588  do i = 1, dis2d_shape(2)
589  inunit = create_export_file(varname, mempath, i, iout)
590  write (inunit, '(*(G0.10, " "))') (dbl2d(j, i), j=1, dis2d_shape(1))
591  close (inunit)
592  end do
593  else
594  ! write export file 2D array
595  inunit = create_export_file(varname, mempath, 0, iout)
596  do i = 1, dis2d_shape(2)
597  write (inunit, '(*(G0.10, " "))') (dbl2d(j, i), j=1, dis2d_shape(1))
598  end do
599  close (inunit)
600  end if
601  ! cleanup
602  deallocate (dbl2d)
603  case (1)
604  ! write export file 1D array
605  inunit = create_export_file(varname, mempath, 0, iout)
606  write (inunit, '(*(G0.10, " "))') p_mem
607  close (inunit)
608  case default
609  write (errmsg, '(a,i0)') 'EXPORT unsupported dbl1d export_dim=', &
610  export_dim
611  call store_error(errmsg, .true.)
612  end select
character(len=lenmempath) function create_mem_path(component, subcomponent, context)
returns the path to the memory object
subroutine split_mem_path(mem_path, component, subcomponent)
Split the memory path into component(s)
Here is the call graph for this function:

◆ idm_export_dbl2d()

subroutine idmloggermodule::idm_export::idm_export_dbl2d ( real(dp), dimension(:, :), intent(in), contiguous  p_mem,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  mempath,
character(len=*), intent(in)  shapestr,
integer(i4b), intent(in)  iout 
)
private
Parameters
[in]p_mem2d dbl array
[in]varnamevariable name
[in]mempathvariable memory path
[in]shapestrdfn shape string

Definition at line 617 of file IdmLogger.f90.

620  real(DP), dimension(:, :), contiguous, intent(in) :: p_mem !< 2d dbl array
621  character(len=*), intent(in) :: varname !< variable name
622  character(len=*), intent(in) :: mempath !< variable memory path
623  character(len=*), intent(in) :: shapestr !< dfn shape string
624  integer(I4B), intent(in) :: iout
625  integer(I4B), dimension(:), pointer, contiguous :: model_shape
626  integer(I4B), pointer :: distype
627  character(LENMEMPATH) :: input_mempath
628  character(LENCOMPONENTNAME) :: comp, subcomp
629  integer(I4B) :: i, j, inunit, export_dim
630  logical(LGP) :: is_layered
631 
632  ! set pointer to DISENUM
633  call split_mem_path(mempath, comp, subcomp)
634  input_mempath = create_mem_path(component=comp, context=idm_context)
635  call mem_setptr(distype, 'DISENUM', input_mempath)
636  call mem_setptr(model_shape, 'MODEL_SHAPE', input_mempath)
637 
638  ! set export_dim
639  export_dim = distype_export_dim(distype, shapestr, is_layered)
640 
641  select case (export_dim)
642  case (1)
643  ! write export file 1D array
644  inunit = create_export_file(varname, mempath, 0, iout)
645  do i = 1, size(p_mem, dim=2)
646  write (inunit, '(*(G0.10, " "))') (p_mem(j, i), j=1, size(p_mem, dim=1))
647  end do
648  close (inunit)
649  case (2)
650  if (is_layered) then
651  ! write layered export files 2D array
652  do i = 1, size(p_mem, dim=2)
653  inunit = create_export_file(varname, mempath, i, iout)
654  write (inunit, '(*(G0.10, " "))') (p_mem(j, i), j=1, size(p_mem, dim=1))
655  close (inunit)
656  end do
657  else
658  ! write export file 2D array
659  inunit = create_export_file(varname, mempath, 0, iout)
660  do i = 1, size(p_mem, dim=2)
661  write (inunit, '(*(G0.10, " "))') (p_mem(j, i), j=1, size(p_mem, dim=1))
662  end do
663  close (inunit)
664  end if
665  case default
666  write (errmsg, '(a,i0)') 'EXPORT unsupported dbl2d export_dim=', &
667  export_dim
668  call store_error(errmsg, .true.)
669  end select
Here is the call graph for this function:

◆ idm_export_dbl3d()

subroutine idmloggermodule::idm_export::idm_export_dbl3d ( real(dp), dimension(:, :, :), intent(in), contiguous  p_mem,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  mempath,
character(len=*), intent(in)  shapestr,
integer(i4b), intent(in)  iout 
)
private
Parameters
[in]p_mem2d dbl array
[in]varnamevariable name
[in]mempathvariable memory path
[in]shapestrdfn shape string

Definition at line 674 of file IdmLogger.f90.

677  real(DP), dimension(:, :, :), contiguous, intent(in) :: p_mem !< 2d dbl array
678  character(len=*), intent(in) :: varname !< variable name
679  character(len=*), intent(in) :: mempath !< variable memory path
680  character(len=*), intent(in) :: shapestr !< dfn shape string
681  integer(I4B), intent(in) :: iout
682  integer(I4B), dimension(:), pointer, contiguous :: model_shape
683  integer(I4B), pointer :: distype
684  character(LENMEMPATH) :: input_mempath
685  character(LENCOMPONENTNAME) :: comp, subcomp
686  integer(I4B) :: i, j, k, inunit, export_dim
687  logical(LGP) :: is_layered
688 
689  ! set pointer to DISENUM
690  call split_mem_path(mempath, comp, subcomp)
691  input_mempath = create_mem_path(component=comp, context=idm_context)
692  call mem_setptr(distype, 'DISENUM', input_mempath)
693  call mem_setptr(model_shape, 'MODEL_SHAPE', input_mempath)
694 
695  ! set export_dim
696  export_dim = distype_export_dim(distype, shapestr, is_layered)
697 
698  select case (export_dim)
699  case (3)
700  ! write export files 3D array
701  do k = 1, size(p_mem, dim=3)
702  inunit = create_export_file(varname, mempath, k, iout)
703  do i = 1, size(p_mem, dim=2)
704  write (inunit, '(*(G0.10, " "))') (p_mem(j, i, k), j=1, &
705  size(p_mem, dim=1))
706  end do
707  close (inunit)
708  end do
709  case default
710  write (errmsg, '(a,i0)') 'EXPORT unsupported dbl3d export_dim=', &
711  export_dim
712  call store_error(errmsg, .true.)
713  end select
Here is the call graph for this function:

◆ idm_export_int1d()

subroutine idmloggermodule::idm_export::idm_export_int1d ( integer(i4b), dimension(:), intent(in), contiguous  p_mem,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  mempath,
character(len=*), intent(in)  shapestr,
integer(i4b), intent(in)  iout 
)
private

export layered int1d parameter files

Parameters
[in]p_mem1d integer array
[in]varnamevariable name
[in]mempathvariable memory path
[in]shapestrdfn shape string

Definition at line 340 of file IdmLogger.f90.

343  integer(I4B), dimension(:), contiguous, intent(in) :: p_mem !< 1d integer array
344  character(len=*), intent(in) :: varname !< variable name
345  character(len=*), intent(in) :: mempath !< variable memory path
346  character(len=*), intent(in) :: shapestr !< dfn shape string
347  integer(I4B), intent(in) :: iout
348  integer(I4B), dimension(:), pointer, contiguous :: model_shape
349  integer(I4B), dimension(:, :, :), pointer, contiguous :: int3d
350  integer(I4B), dimension(:, :), pointer, contiguous :: int2d
351  integer(I4B), dimension(3) :: dis3d_shape
352  integer(I4B), dimension(2) :: dis2d_shape
353  integer(I4B), pointer :: distype
354  character(LENMEMPATH) :: input_mempath
355  character(LENCOMPONENTNAME) :: comp, subcomp
356  integer(I4B) :: i, j, k, inunit, export_dim
357  logical(LGP) :: is_layered
358 
359  ! set pointer to DISENUM and MODEL_SHAPE
360  call split_mem_path(mempath, comp, subcomp)
361  input_mempath = create_mem_path(component=comp, context=idm_context)
362  call mem_setptr(distype, 'DISENUM', input_mempath)
363  call mem_setptr(model_shape, 'MODEL_SHAPE', input_mempath)
364 
365  ! set export_dim
366  export_dim = distype_export_dim(distype, shapestr, is_layered)
367 
368  ! create export file(s)
369  select case (export_dim)
370  case (3)
371  ! set reshape array
372  dis3d_shape(1) = model_shape(3)
373  dis3d_shape(2) = model_shape(2)
374  dis3d_shape(3) = model_shape(1)
375  ! allocate and reshape
376  allocate (int3d(dis3d_shape(1), dis3d_shape(2), dis3d_shape(3)))
377  int3d = reshape(p_mem, dis3d_shape)
378  ! write export files 3D array
379  do k = 1, dis3d_shape(3)
380  inunit = create_export_file(varname, mempath, k, iout)
381  do i = 1, model_shape(2)
382  write (inunit, '(*(i0, " "))') (int3d(j, i, k), j=1, &
383  dis3d_shape(1))
384  end do
385  close (inunit)
386  end do
387  ! cleanup
388  deallocate (int3d)
389  case (2)
390  ! set reshape array
391  dis2d_shape(1) = model_shape(2)
392  dis2d_shape(2) = model_shape(1)
393  ! allocate and reshape
394  allocate (int2d(dis2d_shape(1), dis2d_shape(2)))
395  int2d = reshape(p_mem, dis2d_shape)
396  if (is_layered) then
397  ! write layered export files 2D array
398  do i = 1, dis2d_shape(2)
399  inunit = create_export_file(varname, mempath, i, iout)
400  write (inunit, '(*(i0, " "))') (int2d(j, i), j=1, dis2d_shape(1))
401  close (inunit)
402  end do
403  else
404  ! write export file 2D array
405  inunit = create_export_file(varname, mempath, 0, iout)
406  do i = 1, dis2d_shape(2)
407  write (inunit, '(*(i0, " "))') (int2d(j, i), j=1, dis2d_shape(1))
408  end do
409  close (inunit)
410  end if
411  ! cleanup
412  deallocate (int2d)
413  case (1)
414  ! write export file 1D array
415  inunit = create_export_file(varname, mempath, 0, iout)
416  write (inunit, '(*(i0, " "))') p_mem
417  close (inunit)
418  case default
419  write (errmsg, '(a,i0)') 'EXPORT unsupported int1d export_dim=', &
420  export_dim
421  call store_error(errmsg, .true.)
422  end select
Here is the call graph for this function:

◆ idm_export_int2d()

subroutine idmloggermodule::idm_export::idm_export_int2d ( integer(i4b), dimension(:, :), intent(in), contiguous  p_mem,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  mempath,
character(len=*), intent(in)  shapestr,
integer(i4b), intent(in)  iout 
)
private
Parameters
[in]p_mem2d dbl array
[in]varnamevariable name
[in]mempathvariable memory path
[in]shapestrdfn shape string

Definition at line 427 of file IdmLogger.f90.

430  integer(I4B), dimension(:, :), contiguous, intent(in) :: p_mem !< 2d dbl array
431  character(len=*), intent(in) :: varname !< variable name
432  character(len=*), intent(in) :: mempath !< variable memory path
433  character(len=*), intent(in) :: shapestr !< dfn shape string
434  integer(I4B), intent(in) :: iout
435  integer(I4B), dimension(:), pointer, contiguous :: model_shape
436  integer(I4B), pointer :: distype
437  character(LENMEMPATH) :: input_mempath
438  character(LENCOMPONENTNAME) :: comp, subcomp
439  integer(I4B) :: i, j, inunit, export_dim
440  logical(LGP) :: is_layered
441 
442  ! set pointer to DISENUM
443  call split_mem_path(mempath, comp, subcomp)
444  input_mempath = create_mem_path(component=comp, context=idm_context)
445  call mem_setptr(distype, 'DISENUM', input_mempath)
446  call mem_setptr(model_shape, 'MODEL_SHAPE', input_mempath)
447 
448  ! set export_dim
449  export_dim = distype_export_dim(distype, shapestr, is_layered)
450 
451  select case (export_dim)
452  case (1)
453  ! write export file 1D array
454  inunit = create_export_file(varname, mempath, 0, iout)
455  do i = 1, size(p_mem, dim=2)
456  write (inunit, '(*(i0, " "))') (p_mem(j, i), j=1, size(p_mem, dim=1))
457  end do
458  close (inunit)
459  case (2)
460  if (is_layered) then
461  ! write layered export files 2D array
462  do i = 1, size(p_mem, dim=2)
463  inunit = create_export_file(varname, mempath, i, iout)
464  write (inunit, '(*(i0, " "))') (p_mem(j, i), j=1, size(p_mem, dim=1))
465  close (inunit)
466  end do
467  else
468  ! write export file 2D array
469  inunit = create_export_file(varname, mempath, 0, iout)
470  do i = 1, size(p_mem, dim=2)
471  write (inunit, '(*(i0, " "))') (p_mem(j, i), j=1, size(p_mem, dim=1))
472  end do
473  close (inunit)
474  end if
475  case default
476  write (errmsg, '(a,i0)') 'EXPORT unsupported int2d export_dim=', &
477  export_dim
478  call store_error(errmsg, .true.)
479  end select
Here is the call graph for this function:

◆ idm_export_int3d()

subroutine idmloggermodule::idm_export::idm_export_int3d ( integer(i4b), dimension(:, :, :), intent(in), contiguous  p_mem,
character(len=*), intent(in)  varname,
character(len=*), intent(in)  mempath,
character(len=*), intent(in)  shapestr,
integer(i4b), intent(in)  iout 
)
private
Parameters
[in]p_mem2d dbl array
[in]varnamevariable name
[in]mempathvariable memory path
[in]shapestrdfn shape string

Definition at line 484 of file IdmLogger.f90.

487  integer(I4B), dimension(:, :, :), contiguous, intent(in) :: p_mem !< 2d dbl array
488  character(len=*), intent(in) :: varname !< variable name
489  character(len=*), intent(in) :: mempath !< variable memory path
490  character(len=*), intent(in) :: shapestr !< dfn shape string
491  integer(I4B), intent(in) :: iout
492  integer(I4B), dimension(:), pointer, contiguous :: model_shape
493  integer(I4B), pointer :: distype
494  character(LENMEMPATH) :: input_mempath
495  character(LENCOMPONENTNAME) :: comp, subcomp
496  integer(I4B) :: i, j, k, inunit, export_dim
497  logical(LGP) :: is_layered
498 
499  ! set pointer to DISENUM
500  call split_mem_path(mempath, comp, subcomp)
501  input_mempath = create_mem_path(component=comp, context=idm_context)
502  call mem_setptr(distype, 'DISENUM', input_mempath)
503  call mem_setptr(model_shape, 'MODEL_SHAPE', input_mempath)
504 
505  ! set export_dim
506  export_dim = distype_export_dim(distype, shapestr, is_layered)
507 
508  select case (export_dim)
509  case (3)
510  ! write export files 3D array
511  do k = 1, size(p_mem, dim=3)
512  inunit = create_export_file(varname, mempath, k, iout)
513  do i = 1, size(p_mem, dim=2)
514  write (inunit, '(*(i0, " "))') (p_mem(j, i, k), j=1, size(p_mem, dim=1))
515  end do
516  close (inunit)
517  end do
518  case default
519  write (errmsg, '(a,i0)') 'EXPORT unsupported int3d export_dim=', &
520  export_dim
521  call store_error(errmsg, .true.)
522  end select
Here is the call graph for this function:

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