Skip to content

Commit 68a330b

Browse files
Add rawFilewData loader for public versión
1 parent ea3f067 commit 68a330b

File tree

1 file changed

+79
-10
lines changed

1 file changed

+79
-10
lines changed

src_main_pub/semba_fdtd.F90

Lines changed: 79 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -976,13 +976,19 @@ subroutine initialize_MPI_process(filename)
976976
character(LEN=BUFSIZE), intent(in) :: filename
977977
integer (kind=4) :: mpi_t_linea_t,longitud4
978978
integer(KIND=8) :: rawInfoBuffer, numeroLineasFichero, i8, longitud8
979+
TYPE (t_NFDE_FILE), POINTER :: rawFileInfo
979980

980981
write (dubuf,*) 'INIT Reading file '//trim (adjustl(whoami))//' ', trim (adjustl(filename))
981982

982983
call print11 (l%layoutnumber, dubuf)
983984

984985
if (l%layoutnumber==0) then
986+
#ifdef CompilePrivateVersion
985987
NFDE_FILE => cargar_NFDE_FILE (filename)
988+
#else
989+
call carga_raw_info(rawFileInfo, filename)
990+
NFDE_FILE => rawFileInfo
991+
#endif
986992
else
987993
ALLOCATE (NFDE_FILE)
988994
endif
@@ -1018,21 +1024,22 @@ subroutine initialize_MPI_process(filename)
10181024
call MPI_BCAST(NFDE_FILE%lineas(i8),longitud4,mpi_t_linea_t,0_4,SUBCOMM_MPI,l%ierr)
10191025
CALL MPI_Barrier (SUBCOMM_MPI, l%ierr)
10201026
!!! Bloque de código para debugueo !!!
1021-
if (l%layoutnumber==1) print *,'l%layoutnumber-->',l%layoutnumber, i8,i8+longitud8-1
1022-
if (l%layoutnumber==1) print *,NFDE_FILE%lineas(i8)%len,' ',trim(adjustl(NFDE_FILE%lineas(i8)%dato))
1023-
if (l%layoutnumber==1) print *,NFDE_FILE%lineas(i8+longitud8-1)%len,' ',trim(adjustl(NFDE_FILE%lineas(i8+longitud8-1)%dato))
1024-
CALL MPI_Barrier (SUBCOMM_MPI, l%ierr)
1027+
!!!if (l%layoutnumber==1) print *,'l%layoutnumber-->',l%layoutnumber, i8,i8+longitud8-1
1028+
!!!if (l%layoutnumber==1) print *,NFDE_FILE%lineas(i8)%len,' ',trim(adjustl(NFDE_FILE%lineas(i8)%dato))
1029+
!!!if (l%layoutnumber==1) print *,NFDE_FILE%lineas(i8+longitud8-1)%len,' ',trim(adjustl(NFDE_FILE%lineas(i8+longitud8-1)%dato))
1030+
!!!CALL MPI_Barrier (SUBCOMM_MPI, l%ierr)
10251031
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10261032
end do
10271033
!!! Bloque de código para debugueo !!!
1028-
open(6729,file='comprob_'//trim(adjustl(dubuf))//'.nfde',form='formatted')
1029-
write(6729,'(2i12)') NFDE_FILE%numero,NFDE_FILE%targ
1030-
do i=1,numeroLineasFichero
1031-
write(6729,'(i6,a)') NFDE_FILE%lineas(i)%len,trim(adjustl(NFDE_FILE%lineas(i)%dato))
1032-
end do
1033-
close (6729)
1034+
!!!open(6729,file='comprob_'//trim(adjustl(dubuf))//'.nfde',form='formatted')
1035+
!!!write(6729,'(2i12)') NFDE_FILE%numero,NFDE_FILE%targ
1036+
!!!do i=1,numeroLineasFichero
1037+
!!! write(6729,'(i6,a)') NFDE_FILE%lineas(i)%len,trim(adjustl(NFDE_FILE%lineas(i)%dato))
1038+
!!!end do
1039+
!!!close (6729)
10341040
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10351041
end subroutine initialize_MPI_process
1042+
10361043
#endif
10371044
subroutine data_loader(filename, parsedProblem)
10381045
type(Parseador), pointer :: parsedProblem
@@ -1090,6 +1097,68 @@ subroutine data_loader(filename, parsedProblem)
10901097
#endif
10911098
return
10921099
end subroutine data_loader
1100+
1101+
subroutine carga_raw_info (rawFileInfo, filename)
1102+
CHARACTER (LEN=*), INTENT (IN) :: filename
1103+
TYPE (t_NFDE_FILE), POINTER :: rawFileInfo
1104+
1105+
TYPE (t_linea), POINTER :: linea
1106+
LOGICAL :: ok
1107+
CHARACTER (LEN=BUFSIZE) :: l_aux
1108+
character(len=BUFSIZE) :: buffer
1109+
INTEGER (KIND=4) :: i,tamanio,i0,ascii,offset,ascii_menos1,j,k
1110+
Character (Len=:), Allocatable :: fichero
1111+
INTEGER (KIND=4), PARAMETER :: UNIT_EF = 10
1112+
ALLOCATE (rawFileInfo)
1113+
rawFileInfo%numero = 0
1114+
rawFileInfo%targ = 1
1115+
1116+
OPEN (UNIT=UNIT_EF, FILE=trim(adjustl(filename)), STATUS='old',form='formatted')
1117+
DO
1118+
READ (UNIT_EF, '(A)', end=1010) l_aux
1119+
rawFileInfo%numero = rawFileInfo%numero + 1
1120+
IF (len_trim (adjustl(l_aux))>=BUFSIZE) then
1121+
WRITE (buffer,*) 'Line in .nfde larger than ',BUFSIZE,'Recompile '
1122+
call warnerrreport(buffer,.TRUE.) !ABORTA
1123+
endif
1124+
END DO
1125+
1010 CLOSE (UNIT_EF)
1126+
ALLOCATE (rawFileInfo%lineas(rawFileInfo%numero))
1127+
rawFileInfo%numero = 0
1128+
OPEN (UNIT=UNIT_EF, FILE=trim(adjustl(filename)), STATUS='old',form='formatted')
1129+
DO
1130+
READ (UNIT_EF, '(A)', end=2010) l_aux
1131+
IF (len_trim (adjustl(l_aux))>=BUFSIZE) then
1132+
WRITE (buffer,*) 'Line in .nfde larger than ',BUFSIZE,'Recompile '
1133+
call warnerrreport(buffer,.TRUE.) !ABORTA
1134+
endif
1135+
rawFileInfo%numero = rawFileInfo%numero + 1
1136+
linea => rawFileInfo%lineas (rawFileInfo%numero)
1137+
linea%dato = adjustl(l_aux)
1138+
linea%LEN=len_trim (linea%dato)
1139+
END DO
1140+
2010 CLOSE (UNIT_EF)
1141+
1142+
do k=1,rawFileInfo%numero
1143+
linea => rawFileInfo%lineas (k)
1144+
do j=1,linea%len
1145+
i=j
1146+
buscaespa: do while ((ichar(linea%dato(i:i))==32).or.(ichar(linea%dato(i:i))==9))
1147+
if ((ichar(linea%dato(i+1:i+1))==32).or.(ichar(linea%dato(i+1:i+1))==9)) then
1148+
linea%dato = trim (adjustl(linea%dato(1:i)))//' '//trim (adjustl(linea%dato(i+2:linea%len)))
1149+
endif
1150+
i=i+1
1151+
if (i>linea%len) exit buscaespa
1152+
end do buscaespa
1153+
end do
1154+
!update
1155+
linea%dato = trim (adjustl(linea%dato))
1156+
linea%LEN=len_trim (adjustl(linea%dato))
1157+
end do
1158+
1159+
1160+
return
1161+
end subroutine carga_raw_info
10931162
!!!!!!!!!!!!!!!!!
10941163
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10951164
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

0 commit comments

Comments
 (0)