lanl / LaGriT

Los Alamos Grid Toolbox (LaGriT) is a library of user callable tools that provide mesh generation, mesh optimization and dynamic mesh maintenance in two and three dimensions.
https://lanl.github.io/LaGriT/
Other
116 stars 48 forks source link

Windows branch merge #219

Open daniellivingston opened 3 years ago

daniellivingston commented 3 years ago

Right now, the master branch builds only for *nix OSes. The windows branch uses CMake to build a Windows 64-bit version, but with significant source code changes. These different branches should be merged so one code tree builds for all OSes.

millerta commented 2 years ago

windows branch description:

Differences between Master and windows branch: Most of this work is for Windows using Intel and Visual Studio

Files for cpp interface are in examples. Note windows branch has substantial changes in organization. The exodus files seem to have been disabled.

New files;
LaGriT-windows/examples/complete_interface/src/
-rw------- 1 tamiller sft 3328 Jan 11 13:00 Lagrit.cpp
-rw------- 1 tamiller sft 2769 Jan 11 13:00 Lagrit.hpp
-rw------- 1 tamiller sft  799 Jan 11 13:00 main.cpp

New files:
/project/eesdev/tam/clone/LaGriT-windows/src/lg_interface
-rw------- 1 tamiller sft     0 Jan 11 13:00 CMakeLists.txt
-rw------- 1 tamiller sft    31 Jan 11 13:00 export_windows.def
-rw------- 1 tamiller sft 26794 Jan 11 13:00 interface.F
-rw------- 1 tamiller sft  2721 Jan 11 13:00 interface.f90.backup

LaGriT/lg_util/src files are in
/project/eesdev/tam/clone/LaGriT-windows/src/core/memory

Some LaGriT/src files are in LaGriT-windows/src dirs:
  meshing/addmesh (addmesh*.f no difference)
  meshing/cmo (cmo_*.f no difference)
  meshing/dump/exodusii (exo_init_ext.ignore_c exo_put_sets.ignore_c)

Most LaGriT/src files are in
/project/eesdev/tam/clone/LaGriT-windows/src/lg_core

Note Master has newest versions of all files.
Other differences are related to Windows and cpp work.

anothermatbld3d_wrapper.f ------------------
>       use lg_interface
>
<       integer entryprocessed

dotask.f ------------------
<       character*(*) task_buff
<       integer ierror
---
>       character*(*), intent(in) :: task_buff
>       integer, intent(out) :: ierror

dumpexodusII.f ------------------
Windows has empty file where master has conditional compile:
< #ifndef LAGRIT_INCLUDE_EXODUSII
<       write(logmess,'(a)')'ERROR: `dumpexodusII` failed. '
<       write(logmess,'(a)')'LaGriT was not compiled with Exodus libs.'
< #else

linesegtri.f ------------------
>      &    bind (C, name="lineseg_tri_")
>       use, intrinsic :: ISO_C_BINDING

inside_lg.f ------------------
>      &    BIND(C, name="inside_tet_")
>       use, intrinsic :: iso_c_binding

readgmv_binary.f ------------------
>       use lg_interface, only:
>      *  cread4, cread4_ptr,
>      *  cread4_int, cread4_int_ptr,
>      *  cread8

read_sheetij.f ------------------
>       use lg_interface, only: cread4, cread8
>             call cread4(iunit4,fdata4,ibytes,ierror)
>             call cread8(iunit4,fdata8,ibytes,ierror)

Master:
<             call cread(iunit4,fdata4,ibytes,ierror)
<             call cread(iunit4,fdata8,ibytes,ierror)

es22:src:bsh% grep cread ../lg_util/src/*
../lg_util/src/io.c:void cread (unit , array , ilen , ierr)
../lg_util/src/io.c:void cread_(unit , array , ilen , ierr)
millerta commented 2 years ago

This windows branch does not compile for Neal. See attached for his description and the errors produced. windows-log.txt