10#include "scaleFElib.h"
19 use scale_prc,
only: &
21 use scale_file_h,
only: &
65 integer,
allocatable :: vars_ncid(:)
67 integer :: write_buf_amount
68 logical :: file_axes_written
77 logical :: force_uniform_grid
80 procedure :: open => file_base_meshfield_open
81 procedure :: create => file_base_meshfield_create
84 procedure :: file_base_meshfield_def_var1
85 procedure :: file_base_meshfield_def_var2
86 generic :: def_var => file_base_meshfield_def_var1, file_base_meshfield_def_var2
87 procedure :: end_def => file_base_meshfield_enddef
89 procedure :: file_base_meshfield_write_var1d
90 generic :: write_var1d => file_base_meshfield_write_var1d
91 procedure :: file_base_meshfield_write_var2d
92 generic :: write_var2d => file_base_meshfield_write_var2d
93 procedure :: file_base_meshfield_write_var3d
94 generic :: write_var3d => file_base_meshfield_write_var3d
96 procedure :: put_globalattribute_time => file_base_meshfield_put_global_attribute_time
98 procedure :: file_base_meshfield_read_var1d
99 procedure :: file_base_meshfield_read_var1d_local
100 procedure :: file_base_meshfield_read_var2d
101 procedure :: file_base_meshfield_read_var2d_local
102 procedure :: file_base_meshfield_read_var3d
103 procedure :: file_base_meshfield_read_var3d_local
104 generic :: read_var => &
105 file_base_meshfield_read_var1d, file_base_meshfield_read_var1d_local, &
106 file_base_meshfield_read_var2d, file_base_meshfield_read_var2d_local, &
107 file_base_meshfield_read_var3d, file_base_meshfield_read_var3d_local
110 procedure :: get_commoninfo => file_base_meshfield_get_commoninfo
111 procedure :: get_datainfo => file_base_meshfield_get_datainfo
112 procedure :: get_varstepsize => file_base_meshfield_get_varstepsize
114 procedure :: close => file_base_meshfield_close
115 procedure :: final => file_base_meshfield_final
129 private :: write_axes
136 mesh2d, meshcubedsphere2d, &
137 mesh3d, meshcubedsphere3d, &
146 integer,
intent(in) :: var_num
147 class(
meshbase1d),
target,
optional,
intent(in) :: mesh1D
152 logical,
intent(in),
optional :: force_uniform_grid
154 logical :: check_specify_mesh
159 allocate( this%vars_ncid(var_num) )
160 this%vars_ncid(:) = -1
163 check_specify_mesh = .false.
164 nullify( this%mesh1D, this%mesh2D, this%mesh3D )
165 nullify( this%meshCS2D, this%meshCS3D )
167 if (
present(mesh1d))
then
168 this%mesh1D => mesh1d
169 check_specify_mesh = .true.
171 allocate( this%dimsinfo(mf1d_dtype_num) )
174 if (
present(mesh2d))
then
175 this%mesh2D => mesh2d
176 check_specify_mesh = .true.
178 allocate( this%dimsinfo(mf2d_dtype_num) )
181 if (
present(meshcubedsphere2d))
then
182 this%meshCS2D => meshcubedsphere2d
183 check_specify_mesh = .true.
185 allocate( this%dimsinfo(mf2d_dtype_num) )
188 if (
present(mesh3d))
then
189 this%mesh3D => mesh3d
190 check_specify_mesh = .true.
192 allocate( this%dimsinfo(mf3d_dtype_num) )
195 if (
present(meshcubedsphere3d))
then
196 this%meshCS3D => meshcubedsphere3d
197 check_specify_mesh = .true.
199 allocate( this%dimsinfo(mf3d_dtype_num) )
203 if (
present(force_uniform_grid) )
then
204 this%force_uniform_grid = force_uniform_grid
206 this%force_uniform_grid = .false.
209 if (.not. check_specify_mesh)
then
210 log_error(
"FILE_base_meshfield_Init",*)
'Specify a mesh among mesh1D, 2D, and 3D. Check!'
215 this%File_axes_written = .false.
216 this%write_buf_amount = 0
221 subroutine file_base_meshfield_open( this, & ! (inout)
224 use scale_file,
only: &
229 character(*),
intent(in) :: basename
230 integer,
intent(in),
optional :: myrank
233 call file_open( basename, &
238 end subroutine file_base_meshfield_open
240 subroutine file_base_meshfield_create( &
241 this, basename, title, dtype, &
243 myrank, tunits, calendar )
245 use scale_file,
only: &
250 character(*),
intent(in) :: basename
251 character(*),
intent(in) :: title
252 character(*),
intent(in) :: dtype
253 logical,
intent(out) :: fileexisted
254 integer,
intent(in),
optional :: myrank
255 character(*),
intent(in),
optional :: calendar
256 character(*),
intent(in),
optional :: tunits
259 call file_create( basename, &
266 time_units = tunits, &
267 calendar = calendar )
269 if ( .not. fileexisted )
then
270 call def_axes( this, dtype )
271 this%File_axes_written = .false.
275 end subroutine file_base_meshfield_create
277 subroutine file_base_meshfield_def_var1( this, & ! (inout)
278 field, desc, vid, dim_type_id, datatype, &
279 standard_name, timeinv, nsteps )
284 character(len=*),
intent(in) :: desc
285 integer,
intent(in) :: dim_type_id
286 integer,
intent(in) :: vid
287 character(len=*),
intent(in) :: datatype
288 character(len=*),
optional,
intent(in) :: standard_name
289 real(DP),
optional,
intent(in) :: timeinv
290 integer,
optional,
intent(in) :: nsteps
293 call this%Def_Var( field%varname, field%unit, &
294 desc, vid, dim_type_id, datatype, standard_name, timeinv, nsteps )
297 end subroutine file_base_meshfield_def_var1
299 subroutine file_base_meshfield_def_var2( this, & ! (inout)
300 varname, units, desc, vid, dim_type_id, datatype, &
301 standard_name, timeinv, nsteps )
303 use scale_file,
only: &
310 character(len=*),
intent(in) :: varname
311 character(len=*),
intent(in) :: units
312 character(len=*),
intent(in) :: desc
313 integer,
intent(in) :: dim_type_id
314 integer,
intent(in) :: vid
315 character(len=*),
intent(in) :: datatype
316 character(len=*),
optional,
intent(in) :: standard_name
317 real(DP),
optional,
intent(in) :: timeinv
318 integer,
optional,
intent(in) :: nsteps
322 character(len=H_MID) :: standard_name_
325 i_dtype = get_dtype(datatype)
327 if (
present(nsteps) )
then
328 this%write_buf_amount = this%write_buf_amount + this%dimsinfo(dim_type_id)%size * nsteps
330 this%write_buf_amount = this%write_buf_amount + this%dimsinfo(dim_type_id)%size
332 if (
present(standard_name) )
then
333 standard_name_ = standard_name
338 ndim = this%dimsinfo(dim_type_id)%ndim
339 if (
present(timeinv) )
then
340 call file_def_variable( this%fid, varname, desc, units, standard_name_, &
341 ndim, this%dimsinfo(dim_type_id)%dims(1:ndim), i_dtype, this%vars_ncid(vid), &
344 call file_def_variable( this%fid, varname, desc, units, standard_name_, &
345 ndim, this%dimsinfo(dim_type_id)%dims(1:ndim), i_dtype, this%vars_ncid(vid) )
349 end subroutine file_base_meshfield_def_var2
351 subroutine file_base_meshfield_enddef( this )
353 use scale_file,
only: &
362 if (this%fid == -1)
return
364 call file_enddef( this%fid )
366 if ( .not. this%File_axes_written )
then
368 call write_axes( this, start(:) )
369 this%File_axes_written = .true.
373 end subroutine file_base_meshfield_enddef
376 subroutine file_base_meshfield_write_var1d( this, & ! (inout)
377 vid, field1d, sec_str, sec_end )
379 use scale_file,
only: &
387 integer,
intent(in) :: vid
389 real(DP),
intent(in) :: sec_str
390 real(DP),
intent(in) :: sec_end
392 real(RP),
allocatable :: buf(:)
397 if ( this%fid /= -1 )
then
399 dims(1) = this%dimsinfo(mf1d_dimtype_x)%size
400 allocate( buf(dims(1)) )
402 this%force_uniform_grid )
404 call file_write( this%vars_ncid(vid), buf(:), &
405 sec_str, sec_end, start=start )
409 end subroutine file_base_meshfield_write_var1d
412 subroutine file_base_meshfield_write_var2d( this, & ! (inout)
413 vid, field2d, sec_str, sec_end )
415 use scale_file,
only: &
424 integer,
intent(in) :: vid
426 real(DP),
intent(in) :: sec_str
427 real(DP),
intent(in) :: sec_end
429 real(RP),
allocatable :: buf(:,:)
434 if ( this%fid /= -1 )
then
436 dims(1) = this%dimsinfo(mf2d_dimtype_x)%size
437 dims(2) = this%dimsinfo(mf2d_dimtype_y)%size
438 allocate( buf(dims(1),dims(2)) )
439 if (
associated(this%mesh2D) )
then
441 this%force_uniform_grid )
442 else if (
associated(this%meshCS2D) )
then
444 this%meshCS2D, field2d, buf(:,:) )
447 call file_write( this%vars_ncid(vid), buf(:,:), &
448 sec_str, sec_end, start=start )
452 end subroutine file_base_meshfield_write_var2d
455 subroutine file_base_meshfield_write_var3d( this, & ! (inout)
456 vid, field3d, sec_str, sec_end )
458 use scale_file,
only: &
468 integer,
intent(in) :: vid
470 real(DP),
intent(in) :: sec_str
471 real(DP),
intent(in) :: sec_end
473 real(RP),
allocatable :: buf(:,:,:)
478 if ( this%fid /= -1 )
then
480 dims(1) = this%dimsinfo(mf3d_dimtype_x)%size
481 dims(2) = this%dimsinfo(mf3d_dimtype_y)%size
482 dims(3) = this%dimsinfo(mf3d_dimtype_z)%size
483 allocate( buf(dims(1),dims(2),dims(3)) )
485 if (
associated(this%mesh3D) )
then
487 this%force_uniform_grid )
488 else if (
associated(this%meshCS3D) )
then
490 this%meshCS3D, field3d, buf(:,:,:) )
493 call file_write( this%vars_ncid(vid), buf(:,:,:), &
494 sec_str, sec_end, start )
498 end subroutine file_base_meshfield_write_var3d
500 subroutine file_base_meshfield_get_commoninfo( this, & ! (in)
501 title, source, institution )
502 use scale_file,
only: &
507 character(len=FILE_HMID),
intent(out),
optional :: title
508 character(len=FILE_HMID),
intent(out),
optional :: source
509 character(len=FILE_HMID),
intent(out),
optional :: institution
512 if (
present(title) )
call file_get_attribute( this%fid,
'global',
'title', title )
513 if (
present(source) )
call file_get_attribute( this%fid,
'global',
'source', source )
514 if (
present(institution) )
call file_get_attribute( this%fid,
'global',
'institution', institution )
517 end subroutine file_base_meshfield_get_commoninfo
519 subroutine file_base_meshfield_get_varstepsize( this, varname, & ! (in)
521 use scale_file,
only: &
526 character(*),
intent(in) :: varname
527 integer,
intent(out) :: len
530 call file_get_stepsize( this%fid, varname, &
534 end subroutine file_base_meshfield_get_varstepsize
536 subroutine file_base_meshfield_get_datainfo( this, varname, istep, & ! (in)
537 description, units, standard_name, &
538 time_start, time_end, time_units, calendar )
539 use scale_file,
only: &
544 character(*),
intent(in) :: varname
545 integer,
intent(in),
optional :: istep
546 character(len=FILE_HMID),
intent(out),
optional :: description
547 character(len=FILE_HSHORT),
intent(out),
optional :: units
548 character(len=FILE_HMID),
intent(out),
optional :: standard_name
549 real(DP),
intent(out),
optional :: time_start
550 real(DP),
intent(out),
optional :: time_end
551 character(len=FILE_HMID),
intent(out),
optional :: time_units
552 character(len=FILE_HSHORT),
intent(out),
optional :: calendar
555 call file_get_datainfo( this%fid, varname, istep=istep, &
556 description=description, units=units, standard_name=standard_name, &
557 time_start=time_start, time_end=time_end, time_units=time_units, calendar=calendar )
560 end subroutine file_base_meshfield_get_datainfo
563 subroutine file_base_meshfield_read_var1d( this, & ! (inout)
564 dim_typeid, varname, &
566 step, allow_missing )
568 use scale_file,
only: &
576 integer,
intent(in) :: dim_typeid
577 character(*),
intent(in) :: varname
579 integer,
intent(in),
optional :: step
580 logical,
intent(in),
optional :: allow_missing
582 real(RP),
allocatable :: buf(:)
587 if ( this%fid /= -1 )
then
589 dims(1) = this%dimsinfo(dim_typeid)%size
590 allocate( buf(dims(1)) )
592 call file_read( this%fid, varname, &
594 step=step, allow_missing=allow_missing )
601 end subroutine file_base_meshfield_read_var1d
604 subroutine file_base_meshfield_read_var1d_local( this, & ! (inout)
605 dim_typeid, varname, lcmesh, i0_s, &
607 step, allow_missing )
609 use scale_file,
only: &
617 integer,
intent(in) :: dim_typeid
618 character(*),
intent(in) :: varname
620 integer,
intent(in) :: i0_s
621 real(RP),
intent(out) :: val(lcmesh%refElem1D%Np,lcmesh%NeA)
622 integer,
intent(in),
optional :: step
623 logical,
intent(in),
optional :: allow_missing
625 real(RP),
allocatable :: buf(:)
630 if ( this%fid /= -1 )
then
632 dims(1) = this%dimsinfo(dim_typeid)%size
633 allocate( buf(dims(1)) )
635 call file_read( this%fid, varname, &
637 step=step, allow_missing=allow_missing )
640 lcmesh, buf(:), i0_s, &
645 end subroutine file_base_meshfield_read_var1d_local
648 subroutine file_base_meshfield_read_var2d( this, & ! (inout)
649 dim_typeid, varname, &
651 step, allow_missing )
653 use scale_file,
only: &
662 integer,
intent(in) :: dim_typeid
663 character(*),
intent(in) :: varname
665 integer,
intent(in),
optional :: step
666 logical,
intent(in),
optional :: allow_missing
668 real(RP),
allocatable :: buf(:,:)
673 if ( this%fid /= -1 )
then
675 dims(1) = this%dimsinfo(mf2d_dimtype_x)%size
676 dims(2) = this%dimsinfo(mf2d_dimtype_y)%size
677 allocate( buf(dims(1),dims(2)) )
679 call file_read( this%fid, varname, &
681 step=step, allow_missing=allow_missing )
683 if (
associated( this%meshCS2D) )
then
685 this%meshCS2D, buf(:,:), &
687 else if (
associated( this%mesh2D) )
then
694 end subroutine file_base_meshfield_read_var2d
697 subroutine file_base_meshfield_read_var2d_local( this, & ! (inout)
698 dim_typeid, varname, lcmesh, i0_s, j0_s, &
700 step, allow_missing )
702 use scale_file,
only: &
710 integer,
intent(in) :: dim_typeid
711 character(*),
intent(in) :: varname
713 integer,
intent(in) :: i0_s, j0_s
714 real(RP),
intent(out) :: val(lcmesh%refElem2D%Np,lcmesh%NeA)
715 integer,
intent(in),
optional :: step
716 logical,
intent(in),
optional :: allow_missing
718 real(RP),
allocatable :: buf(:,:)
723 if ( this%fid /= -1 )
then
725 dims(1) = this%dimsinfo(mf2d_dimtype_x)%size
726 dims(2) = this%dimsinfo(mf2d_dimtype_y)%size
727 allocate( buf(dims(1),dims(2)) )
729 call file_read( this%fid, varname, &
731 step=step, allow_missing=allow_missing )
734 lcmesh, buf(:,:), i0_s, j0_s, &
739 end subroutine file_base_meshfield_read_var2d_local
742 subroutine file_base_meshfield_read_var3d( this, & ! (inout)
743 dim_typeid, varname, &
745 step, allow_missing )
747 use scale_file,
only: &
757 integer,
intent(in) :: dim_typeid
758 character(*),
intent(in) :: varname
760 integer,
intent(in),
optional :: step
761 logical,
intent(in),
optional :: allow_missing
763 real(RP),
allocatable :: buf(:,:,:)
768 if ( this%fid /= -1 )
then
770 dims(1) = this%dimsinfo(mf3d_dimtype_x)%size
771 dims(2) = this%dimsinfo(mf3d_dimtype_y)%size
772 dims(3) = this%dimsinfo(mf3d_dimtype_z)%size
773 allocate( buf(dims(1),dims(2),dims(3)) )
775 call file_read( this%fid, varname, &
777 step=step, allow_missing=allow_missing )
779 if (
associated(this%meshCS3D) )
then
781 this%meshCS3D, buf(:,:,:), &
783 else if (
associated(this%mesh3D) )
then
790 end subroutine file_base_meshfield_read_var3d
793 subroutine file_base_meshfield_read_var3d_local( this, & ! (inout)
794 dim_typeid, varname, lcmesh, i0_s, j0_s, k0_s, &
796 step, allow_missing )
798 use scale_file,
only: &
806 integer,
intent(in) :: dim_typeid
807 character(*),
intent(in) :: varname
809 integer,
intent(in) :: i0_s, j0_s, k0_s
810 real(RP),
intent(out) :: val(lcmesh%refElem3D%Np,lcmesh%NeA)
811 integer,
intent(in),
optional :: step
812 logical,
intent(in),
optional :: allow_missing
814 real(RP),
allocatable :: buf(:,:,:)
819 if ( this%fid /= -1 )
then
821 dims(1) = this%dimsinfo(mf3d_dimtype_x)%size
822 dims(2) = this%dimsinfo(mf3d_dimtype_y)%size
823 dims(3) = this%dimsinfo(mf3d_dimtype_z)%size
824 allocate( buf(dims(1),dims(2),dims(3)) )
826 call file_read( this%fid, varname, &
828 step=step, allow_missing=allow_missing )
831 lcmesh, buf(:,:,:), i0_s, j0_s, k0_s, &
836 end subroutine file_base_meshfield_read_var3d_local
838 subroutine file_base_meshfield_close( this )
839 use scale_file,
only: file_close
845 if ( this%fid /= -1 )
then
846 call file_close( this%fid )
851 end subroutine file_base_meshfield_close
854 subroutine file_base_meshfield_final( this )
859 if (
allocated(this%vars_ncid) )
deallocate( this%vars_ncid )
860 if (
allocated(this%dimsinfo) )
deallocate( this%dimsinfo )
861 nullify( this%mesh1D, this%mesh2D, this%mesh3D )
864 end subroutine file_base_meshfield_final
866 subroutine file_base_meshfield_put_global_attribute_time( &
869 use scale_file,
only: &
870 file_set_attribute, &
872 use scale_calendar,
only: &
878 integer,
intent(in) :: date(6)
879 real(DP),
intent(in) :: subsec
881 character(34) :: tunits
882 character(len=H_SHORT) :: calendar_name
885 call file_set_attribute( this%fid,
"global",
"Conventions",
"CF-1.6" )
886 call file_set_attribute( this%fid,
"global",
"grid_name",
"hoge" )
890 if ( date(1) > 0 )
then
891 call file_get_cftunits( date(:), tunits )
892 call calendar_get_name( calendar_name )
898 if ( calendar_name /=
"" ) &
899 call file_set_attribute( this%fid,
"global",
"calendar", calendar_name )
900 call file_set_attribute( this%fid,
"global",
"time_units", tunits )
901 call file_set_attribute( this%fid,
"global",
"time_start", (/ subsec /) )
904 end subroutine file_base_meshfield_put_global_attribute_time
908 subroutine def_axes( this, & ! (in)
910 use scale_const,
only: &
912 use scale_file,
only: &
914 file_set_attribute, &
915 file_def_associatedcoordinate, &
916 file_add_associatedvariable
921 character(*),
intent(in) :: dtype
926 i_dtype = get_dtype( dtype )
928 if (
associated(this%mesh1D) )
then
930 call file_def_axis( this%fid, &
931 this%dimsinfo(d)%name, this%dimsinfo(d)%desc, this%dimsinfo(d)%unit, &
932 this%dimsinfo(d)%name, i_dtype, this%dimsinfo(d)%size )
936 if (
associated(this%mesh2D) &
937 .or.
associated(this%meshCS2D) )
then
939 call file_def_axis( this%fid, &
940 this%dimsinfo(d)%name, this%dimsinfo(d)%desc, this%dimsinfo(d)%unit, &
941 this%dimsinfo(d)%name, i_dtype, this%dimsinfo(d)%size )
945 if (
associated(this%mesh3D) &
946 .or.
associated(this%meshCS3D) )
then
948 call file_def_axis( this%fid, &
949 this%dimsinfo(d)%name, this%dimsinfo(d)%desc, this%dimsinfo(d)%unit, &
950 this%dimsinfo(d)%name, i_dtype, this%dimsinfo(d)%size )
955 end subroutine def_axes
957 subroutine write_axes( this, & ! (in)
959 use scale_const,
only: &
961 use scale_file,
only: &
969 integer,
intent(in) :: start(3)
971 real(RP),
allocatable :: x(:)
972 real(RP),
allocatable :: y(:)
973 real(RP),
allocatable :: z(:)
976 if (
associated(this%mesh1D) )
then
977 allocate( x(this%dimsinfo(1)%size) )
980 call file_write_axis( this%fid, this%dimsinfo(1)%name, x(:), start(1:1) )
983 if (
associated(this%mesh2D) )
then
984 allocate( x(this%dimsinfo(1)%size), y(this%dimsinfo(2)%size) )
987 call file_write_axis( this%fid, this%dimsinfo(1)%name, x(:), start(1:1) )
988 call file_write_axis( this%fid, this%dimsinfo(2)%name, y(:), start(2:2) )
991 if (
associated(this%meshCS2D) )
then
992 allocate( x(this%dimsinfo(1)%size), y(this%dimsinfo(2)%size) )
995 call file_write_axis( this%fid, this%dimsinfo(1)%name, x(:), start(1:1) )
996 call file_write_axis( this%fid, this%dimsinfo(2)%name, y(:), start(2:2) )
999 if (
associated(this%mesh3D) )
then
1000 allocate( x(this%dimsinfo(1)%size), y(this%dimsinfo(2)%size), z(this%dimsinfo(3)%size) )
1003 call file_write_axis( this%fid, this%dimsinfo(1)%name, x(:), start(1:1) )
1004 call file_write_axis( this%fid, this%dimsinfo(2)%name, y(:), start(2:2) )
1005 call file_write_axis( this%fid, this%dimsinfo(3)%name, z(:), start(3:3) )
1006 if ( this%dimsinfo(3)%positive_down(1) ) &
1007 call file_set_attribute( this%fid, this%dimsinfo(3)%name,
"positive",
"down" )
1010 if (
associated(this%meshCS3D) )
then
1011 allocate( x(this%dimsinfo(1)%size), y(this%dimsinfo(2)%size), z(this%dimsinfo(3)%size) )
1014 call file_write_axis( this%fid, this%dimsinfo(1)%name, x(:), start(1:1) )
1015 call file_write_axis( this%fid, this%dimsinfo(2)%name, y(:), start(2:2) )
1016 call file_write_axis( this%fid, this%dimsinfo(3)%name, z(:), start(3:3) )
1017 if ( this%dimsinfo(3)%positive_down(1) ) &
1018 call file_set_attribute( this%fid, this%dimsinfo(3)%name,
"positive",
"down" )
1022 end subroutine write_axes
module FElib / Element / Base
module FElib / File / Base
subroutine file_base_meshfield_init(this, var_num, mesh1d, mesh2d, meshcubedsphere2d, mesh3d, meshcubedsphere3d, force_uniform_grid)
module FElib / File / Common
subroutine, public file_common_meshfield_set_cartesbuf_field1d(mesh1d, buf, field1d)
subroutine, public file_common_meshfield_set_cartesbuf_field2d(mesh2d, buf, field2d)
subroutine, public file_common_meshfield_put_field3d_cubedsphere_cartesbuf(mesh3d, field3d, buf)
subroutine, public file_common_meshfield_put_field2d_cubedsphere_cartesbuf(mesh2d, field2d, buf)
subroutine, public file_common_meshfield_put_field2d_cartesbuf(mesh2d, field2d, buf, force_uniform_grid)
subroutine, public file_common_meshfield_set_cartesbuf_field3d(mesh3d, buf, field3d)
subroutine, public file_common_meshfield_put_field1d_cartesbuf(mesh1d, field1d, buf, force_uniform_grid)
subroutine, public file_common_meshfield_set_cartesbuf_field2d_local(lcmesh, buf, i0_s, j0_s, val)
subroutine, public file_common_meshfield_set_cartesbuf_field3d_local(lcmesh, buf, i0_s, j0_s, k0_s, val)
subroutine, public file_common_meshfield_put_field3d_cartesbuf(mesh3d, field3d, buf, force_uniform_grid)
subroutine, public file_common_meshfield_set_cartesbuf_field1d_local(lcmesh, buf, i0_s, val)
subroutine, public file_common_meshfield_set_cartesbuf_field3d_cubedsphere(mesh3d, buf, field3d)
subroutine, public file_common_meshfield_set_cartesbuf_field2d_cubedsphere(mesh2d, buf, field2d)
integer function, public file_common_meshfield_get_dtype(datatype)
module FElib / Mesh / Local 1D
module FElib / Mesh / Local 2D
module FElib / Mesh / Local 3D
module FElib / Mesh / Base 1D
integer, public meshbase1d_dimtype_num
integer, public meshbase1d_dimtypeid_x
module FElib / Mesh / Base 2D
integer, public meshbase2d_dimtypeid_x
integer, public meshbase2d_dimtype_num
integer, public meshbase2d_dimtypeid_y
module FElib / Mesh / Base 3D
integer, public meshbase3d_dimtypeid_y
integer, public meshbase3d_dimtypeid_z
integer, public meshbase3d_dimtype_num
integer, public meshbase3d_dimtypeid_x
module FElib / Mesh / Cubic 3D domain
module FElib / Mesh / Cubed-sphere 2D domain
module FElib / Mesh / Cubed-sphere 3D domain
module FElib / Mesh / Rectangle 2D domain
module FElib / Data / base
module FElib / Data / base