Added some calc and metric changes

development
Alex Selimov 4 years ago
parent 153b95194f
commit 0620a07847

@ -1,14 +1,15 @@
FC=ifort FC=gfortran
#Ifort flags #Ifort flags
FFLAGS=-mcmodel=large -g -O0 -stand f08 -fpe0 -traceback -check bounds,uninit -warn all -implicitnone -no-wrap-margin -heap-arrays #FFLAGS=-mcmodel=large -g -O0 -stand f08 -fpe0 -traceback -check bounds,uninit -warn all -implicitnone -no-wrap-margin -heap-arrays
#FFLAGS=-mcmodel=large -Ofast -no-wrap-margin -heap-arrays #FFLAGS=-mcmodel=large -Ofast -no-wrap-margin -heap-arrays
#gfortran flags #gfortran flags
#FFLAGS=-mcmodel=large -O3 -g FFLAGS=-mcmodel=large -O3 -g
#FFLAGS=-mcmodel=large -O0 -g -fbacktrace -fcheck=all #FFLAGS=-mcmodel=large -O0 -g -fbacktrace -fcheck=all
MODES=mode_create.o mode_merge.o mode_convert.o mode_metric.o MODES=mode_create.o mode_merge.o mode_convert.o mode_metric.o mode_calc.o
OPTIONS=opt_disl.o opt_group.o opt_orient.o opt_delete.o opt_deform.o opt_redef_box.o opt_slip_plane.o OPTIONS=opt_disl.o opt_group.o opt_orient.o opt_delete.o opt_deform.o opt_redef_box.o opt_slip_plane.o
OBJECTS=main.o elements.o io.o subroutines.o functions.o atoms.o call_mode.o box.o neighbors.o $(MODES) $(OPTIONS) call_option.o sorts.o OBJECTS=main.o elements.o io.o subroutines.o functions.o atoms.o call_mode.o box.o neighbors.o $(MODES) $(OPTIONS) call_option.o sorts.o
@ -23,7 +24,7 @@ cacmb: $(OBJECTS)
.PHONY: clean .PHONY: clean
clean: clean:
$(RM) cacmb *.o *.mod $(RM) cacmb *.o *.mod *genmod*
testfuncs: testfuncs.o functions.o subroutines.o testfuncs: testfuncs.o functions.o subroutines.o
$(FC) testfuncs.o functions.o subroutines.o box.o elements.o -o $@ $(FC) testfuncs.o functions.o subroutines.o box.o elements.o -o $@

@ -600,7 +600,7 @@ module io
stop 3 stop 3
end if end if
select case(trim(adjustl(mode))) select case(trim(adjustl(mode)))
case('--convert','--metric') case('--calc', '--convert','--metric')
infilenum = infilenum+1 infilenum = infilenum+1
infiles(infilenum) = temp_infile infiles(infilenum) = temp_infile
case default case default

@ -112,7 +112,7 @@ program main
!Check to make sure a file was passed to be written out and then write out !Check to make sure a file was passed to be written out and then write out
! Before building do a check on the file ! Before building do a check on the file
if (trim(adjustl(mode)) /= "--metric") then if ((trim(adjustl(mode)) /= "--metric").and.(trim(adjustl(mode)) /= "--calc"))then
if ((outfilenum == 0)) then if ((outfilenum == 0)) then
argument = 'none' argument = 'none'
call get_out_file(argument) call get_out_file(argument)

@ -93,10 +93,10 @@ module mode_metric
call get_command_argument(2,metric_type,arglen) call get_command_argument(2,metric_type,arglen)
if (arglen == 0) stop "Incomplete mode metric command, check documentation" if (arglen == 0) stop "Incomplete mode metric command, check documentation"
select case(trim(adjustl(metric_type))) select case(trim(adjustl(metric_type)))
case("microrotation") case("microrotation", "def_grad")
continue continue
case default case default
print *, "Mode metric does not accept metric ", metric_type, ". Please select from: microrotation" print *, "Mode metric does not accept metric ", metric_type, ". Please select from: microrotation, def_grad"
stop 3 stop 3
end select end select
@ -155,6 +155,7 @@ module mode_metric
do i = 1,3 do i = 1,3
do j = 1, 3 do j = 1, 3
met(k, ip) = def_grad(i,j) met(k, ip) = def_grad(i,j)
k = k + 1
end do end do
end do end do
case('microrotation') case('microrotation')
@ -228,7 +229,7 @@ module mode_metric
if(atom_num > 0) then if(atom_num > 0) then
do i = 1, atom_num do i = 1, atom_num
write(11,*) type_atom(i), r_atom(:,i), met(:,tag_atom(i)) write(11,*) 0, type_atom(i), r_atom(:,i), met(:,tag_atom(i))
end do end do
end if end if
@ -236,7 +237,7 @@ module mode_metric
do i = 1, ele_num do i = 1, ele_num
do inod = 1, ng_node(lat_ele(i)) do inod = 1, ng_node(lat_ele(i))
do ibasis = 1, basisnum(lat_ele(i)) do ibasis = 1, basisnum(lat_ele(i))
write(11,*) basis_type(ibasis,lat_ele(i)), r_node(:,ibasis,inod,i), & write(11,*) 1, basis_type(ibasis,lat_ele(i)), r_node(:,ibasis,inod,i), &
met(:, atom_num+(tag_ele(i)-1)*max_ng_node*max_basisnum + (inod-1)*max_basisnum + ibasis) met(:, atom_num+(tag_ele(i)-1)*max_ng_node*max_basisnum + (inod-1)*max_basisnum + ibasis)
end do end do
end do end do

Loading…
Cancel
Save