@@ -976,13 +976,19 @@ subroutine initialize_MPI_process(filename)
976
976
character (LEN= BUFSIZE), intent (in ) :: filename
977
977
integer (kind= 4 ) :: mpi_t_linea_t,longitud4
978
978
integer (KIND= 8 ) :: rawInfoBuffer, numeroLineasFichero, i8, longitud8
979
+ TYPE (t_NFDE_FILE), POINTER :: rawFileInfo
979
980
980
981
write (dubuf,* ) ' INIT Reading file ' // trim (adjustl (whoami))// ' ' , trim (adjustl (filename))
981
982
982
983
call print11 (l% layoutnumber, dubuf)
983
984
984
985
if (l% layoutnumber== 0 ) then
986
+ #ifdef CompilePrivateVersion
985
987
NFDE_FILE = > cargar_NFDE_FILE (filename)
988
+ #else
989
+ call carga_raw_info(rawFileInfo, filename)
990
+ NFDE_FILE = > rawFileInfo
991
+ #endif
986
992
else
987
993
ALLOCATE (NFDE_FILE)
988
994
endif
@@ -1018,21 +1024,22 @@ subroutine initialize_MPI_process(filename)
1018
1024
call MPI_BCAST(NFDE_FILE% lineas(i8),longitud4,mpi_t_linea_t,0_4 ,SUBCOMM_MPI,l% ierr)
1019
1025
CALL MPI_Barrier (SUBCOMM_MPI, l% ierr)
1020
1026
! !! 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)
1025
1031
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1026
1032
end do
1027
1033
! !! 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)
1034
1040
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1035
1041
end subroutine initialize_MPI_process
1042
+
1036
1043
#endif
1037
1044
subroutine data_loader (filename , parsedProblem )
1038
1045
type (Parseador), pointer :: parsedProblem
@@ -1090,6 +1097,68 @@ subroutine data_loader(filename, parsedProblem)
1090
1097
#endif
1091
1098
return
1092
1099
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
1093
1162
! !!!!!!!!!!!!!!!!
1094
1163
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1095
1164
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0 commit comments