22 #if defined(HAVE_CGNS) 31 CHARACTER(LEN=250) :: file_name
32 CHARACTER(LEN=32) :: title
35 INTEGER :: index_section
37 INTEGER :: index_field
45 DOUBLE PRECISION,
ALLOCATABLE :: times(:)
46 CHARACTER(LEN=VAR_SIZE),
ALLOCATABLE :: varname(:)
47 LOGICAL :: write_at_end
65 &(file_name,file_id,openmode,ierr)
93 INTEGER,
INTENT(OUT) :: FILE_ID
94 CHARACTER(LEN=9),
INTENT(IN) :: OPENMODE
95 CHARACTER(LEN=*),
INTENT(IN) :: FILE_NAME
96 INTEGER,
INTENT(OUT) :: IERR
98 #if defined (HAVE_CGNS) 100 CHARACTER(LEN=32) :: CGNSNAME
102 INTEGER :: ISIZE(3,3)
105 INTEGER :: PARENT_FLAG
106 INTEGER :: ISTART, IEND
107 INTEGER CGNS_OPENMODE
111 IF(openmode(1:5).EQ.
'WRITE')
THEN 112 cgns_openmode = cg_mode_write
113 ELSE IF(openmode.EQ.
'READWRITE')
THEN 114 cgns_openmode = cg_mode_modify
116 cgns_openmode = cg_mode_read
119 CALL cg_open_f(file_name,cgns_openmode,file_id,ierr)
120 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
123 &
'OPEN_MESH_CGNS:CG_OPEN_F' 130 &
'OPEN_MESH_CGNS:ADD_CGNS_FILE' 136 IF(openmode(1:5).EQ.
'WRITE')
THEN 138 ELSE IF(openmode.EQ.
'READWRITE')
THEN 143 IF(openmode(1:5).EQ.
'READ ')
THEN 146 CALL cg_base_read_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
149 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
153 &
'OPEN_MESH_CGNS:CG_BASE_READ_F' 158 CALL cg_zone_read_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
161 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
165 &
'OPEN_MESH_CGNS:CG_ZONE_READ_F' 172 CALL cg_section_read_f(file_id,
176 & istart,iend,nbdyelem,
178 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
182 &
'OPEN_MESH_CGNS:CG_SECTION_READ_F' 202 CALL cg_biter_read_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
204 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
208 &
'OPEN_MESH:CG_BITER_READ_F' 213 CALL cg_nfields_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
216 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
220 &
'OPEN_MESH:CG_NFIELDS_F' 225 CALL cg_goto_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
226 & ierr,
'BaseIterativeData_t',
228 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
232 &
'OPEN_MESH:CG_GOTO_F' 244 CALL cg_array_read_f(1,
cgns_obj_tab(cgns_id)%TIMES,ierr)
245 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
249 &
'OPEN_MESH:CG_ARRAY_READ_F' 272 &(file_name,file_id,openmode,ierr)
294 CHARACTER(LEN=*),
INTENT(IN) :: FILE_NAME
295 INTEGER,
INTENT(IN) :: FILE_ID
296 CHARACTER(LEN=9),
INTENT(IN) :: OPENMODE
297 INTEGER,
INTENT(OUT) :: IERR
299 #if defined (HAVE_CGNS) 302 LOGICAL :: ISOPENED, IS_USED
308 & trim(file_name)//
': '//
309 &
'OPEN_BND_CGNS:GET_CGNS_OBJ' 317 INQUIRE(file=file_name,opened=isopened)
320 INQUIRE(file=file_name,number=
cgns_obj_tab(cgns_id)%NCLI)
325 & form=
'FORMATTED',action=openmode,iostat=ierr)
329 IF(openmode(1:5).NE.
'WRITE')
THEN 334 &
'OPEN_BND_CGNS:OPEN' 343 ELSE IF (ierr.GT.0)
THEN 348 &
'OPEN_BND_CGNS:READ' 390 INTEGER,
INTENT(IN) :: FILE_ID
391 INTEGER,
INTENT(OUT) :: IERR
393 #if defined (HAVE_CGNS) 399 error_message =
'ERROR WITH FILE ID '//i2char(file_id)//
': '//
400 &
'CLOSE_BND_CGNS:GET_CGNS_OBJ' 407 INQUIRE(unit=
cgns_obj_tab(cgns_id)%NCLI,opened=isopened)
415 &
'CLOSE_BND_CGNS:CLOSE' 450 INTEGER,
INTENT(IN) :: FILE_ID
451 INTEGER,
INTENT(OUT) :: IERR
453 #if defined HAVE_CGNS 456 CHARACTER(LEN=32),
ALLOCATABLE :: SOLNAME(:)
461 &
'CLOSE_MESH:GET_CGNS_OBJ' 467 CALL cg_biter_write_f(file_id,
470 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
474 &
'CLOSE_MESH:CG_BITER_WRITE_F' 478 CALL cg_goto_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,ierr,
479 &
'BaseIterativeData_t',
481 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
485 &
'CLOSE_MESH:CG_GOTO_F' 488 CALL cg_array_write_f(
'TimeValues',realdouble,1,
491 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
495 &
'CLOSE_MESH:CG_ARRAY_WRITE_F' 499 CALL cg_ziter_write_f(file_id,
502 &
'ZoneIterativeData',ierr)
503 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
507 &
'CLOSE_MESH:CG_ZITER_WRITE_F' 514 ALLOCATE(solname(
cgns_obj_tab(cgns_id)%NTIMESTEP),stat=ierr)
518 &
'ALLOCATING SOLNAME' 522 solname = repeat(
' ',32)
523 solname(i) =
'Time'//i2char(i)
525 CALL cg_goto_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
528 &
'ZoneIterativeData_t',1,
'end')
529 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
533 &
'CLOSE_MESH:CG_GOTO_F BIS' 538 CALL cg_array_write_f(
'FlowSolutionPointers',
CHARACTER,
539 & 2,idata,solname,ierr)
540 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
544 &
'CLOSE_MESH:CG_ARRAY_WRITE_F BIS' 548 CALL cg_simulation_type_write_f(file_id,
551 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
555 &
'CLOSE_MESH:CG_SIMULATION_TYPE_WRITE_F' 561 CALL cg_close_f(file_id,ierr)
562 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
566 &
'CLOSE_MESH:CG_CLOSE_F' 591 &(file_id,title,ierr)
612 INTEGER,
INTENT(IN) :: FILE_ID
613 CHARACTER(LEN=TITLE_SIZE),
INTENT(INOUT) :: TITLE
614 INTEGER,
INTENT(OUT) :: IERR
616 #if defined (HAVE_CGNS) 617 INTEGER(KIND=K8) :: MY_POS
621 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
624 &
'CLOSE_MESH:GET_CGNS_OBJ' 643 &(file_id,typ_elt,nelem,ierr)
665 INTEGER,
INTENT(IN) :: FILE_ID
666 INTEGER,
INTENT(IN) :: TYP_ELT
667 INTEGER,
INTENT(INOUT) :: NELEM
668 INTEGER,
INTENT(OUT) :: IERR
670 #if defined (HAVE_CGNS) 676 &
'GET_MESH_NELEM_CGNS:GET_CGNS_OBJ' 694 &(file_id,typ_elt,ndp,ierr)
716 INTEGER,
INTENT(IN) :: FILE_ID
717 INTEGER,
INTENT(IN) :: TYP_ELT
718 INTEGER,
INTENT(INOUT) :: NDP
719 INTEGER,
INTENT(OUT) :: IERR
721 #if defined (HAVE_CGNS) 727 &
'GET_MESH_NPOIN_PER_ELEMENT_CGNS:GET_CGNS_OBJ' 745 &(file_id,typ_elt,ikle,nelem,ndp,ierr)
771 INTEGER,
INTENT(IN) :: FILE_ID
772 INTEGER,
INTENT(IN) :: TYP_ELT
773 INTEGER,
INTENT(IN) :: NELEM
774 INTEGER,
INTENT(IN) :: NDP
775 INTEGER,
INTENT(INOUT) :: IKLE(nelem*ndp)
776 INTEGER,
INTENT(OUT) :: IERR
778 #if defined (HAVE_CGNS) 780 INTEGER,
ALLOCATABLE :: IELEM(:,:)
787 &
'GET_MESH_CONNECTIVITY_CGNS:GET_CGNS_OBJ' 802 CALL cg_elements_read_f(file_id,
807 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
811 &
'GET_MESH_CONNECTIVITY_CGNS:CG_ELEMENTS_READ_F' 834 &(file_id,typ_elt,npoin,ierr)
856 INTEGER,
INTENT(IN) :: FILE_ID
857 INTEGER,
INTENT(IN) :: TYP_ELT
858 INTEGER,
INTENT(INOUT) :: NPOIN
859 INTEGER,
INTENT(OUT) :: IERR
861 #if defined (HAVE_CGNS) 867 &
'GET_MESH_NPOIN_CGNS:GET_CGNS_OBJ' 885 &(file_id,nplan,ierr)
906 INTEGER,
INTENT(IN) :: FILE_ID
907 INTEGER,
INTENT(INOUT) :: NPLAN
908 INTEGER,
INTENT(OUT) :: IERR
910 #if defined (HAVE_CGNS) 916 &
'GET_MESH_NPLAN_CGNS:GET_CGNS_OBJ' 955 INTEGER,
INTENT(IN) :: FILE_ID
956 INTEGER,
INTENT(INOUT) :: NDIM
957 INTEGER,
INTENT(OUT) :: IERR
959 #if defined (HAVE_CGNS) 965 &
'GET_MESH_DIMENSION_CGNS:GET_CGNS_OBJ' 983 &(file_id,jdim,npoin,coord,ierr)
1006 INTEGER,
INTENT(IN) :: FILE_ID
1007 INTEGER,
INTENT(IN) :: JDIM
1008 INTEGER,
INTENT(IN) :: NPOIN
1009 DOUBLE PRECISION,
INTENT(INOUT) :: COORD(npoin)
1010 INTEGER,
INTENT(OUT) :: IERR
1012 #if defined (HAVE_CGNS) 1014 CHARACTER(LEN=11) :: COORDNAME
1019 &
'GET_MESH_COORD_CGNS:GET_CGNS_OBJ' 1025 coordname =
'CoordinateX' 1027 coordname =
'CoordinateY' 1029 coordname =
'CoordinateZ' 1031 CALL cg_coord_read_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
1034 & realdouble,1,npoin,coord,ierr)
1035 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
1039 &
'GET_MESH_COORD_CGNS:CG_COORD_READ_F' 1055 &(file_id,knolg,npoin,ierr)
1078 INTEGER,
INTENT(IN) :: FILE_ID
1079 INTEGER,
INTENT(IN) :: NPOIN
1080 INTEGER,
INTENT(INOUT) :: KNOLG(npoin)
1081 INTEGER,
INTENT(OUT) :: IERR
1083 #if defined (HAVE_CGNS) 1085 INTEGER :: DISCR_NO, INDEXU
1086 INTEGER :: INDEX_DIM
1091 &
'GET_MESH_L2G_NUMBERING_CGNS:GET_CGNS_OBJ' 1099 CALL cg_goto_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
1101 &
'DiscreteData_t', discr_no,
1102 &
'UserDefinedData_t', indexu,
'end')
1103 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
1107 &
'GET_MESH_L2G_NUMBERING:CG_GOTO_F' 1112 CALL cg_array_read_f(knolg,
INTEGER, IERR)
1113 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
1117 &
'GET_MESH_L2G_NUMBERING_CGNS:CG_ARRAY_READ_F' 1133 &(file_id,nptir,ierr)
1154 INTEGER,
INTENT(IN) :: FILE_ID
1155 INTEGER,
INTENT(INOUT) :: NPTIR
1156 INTEGER,
INTENT(OUT) :: IERR
1158 #if defined (HAVE_CGNS) 1164 &
'GET_MESH_NPTIR_CGNS:GET_CGNS_OBJ' 1185 &(file_id,type_bnd_elem,npoin,ipobo,ierr)
1210 INTEGER,
INTENT(IN) :: FILE_ID
1211 INTEGER,
INTENT(IN) :: NPOIN
1212 INTEGER,
INTENT(IN) :: TYPE_BND_ELEM
1213 INTEGER,
INTENT(INOUT) :: IPOBO(npoin)
1214 INTEGER,
INTENT(OUT) :: IERR
1216 #if defined (HAVE_CGNS) 1220 DOUBLE PRECISION :: DDUM
1225 &
'GET_BND_IPOBO_CGNS:GET_CGNS_OBJ' 1237 READ(
cgns_obj_tab(cgns_id)%NCLI,*,iostat=ierr) idum,idum,idum,
1239 & ddum ,idum,ddum,ddum,ddum,
1247 &
'GET_BND_CONNECTIVITY_CGNS:READ:END OF FILE' 1250 ELSE IF (ierr.GT.0)
THEN 1255 &
'GET_BND_CONNECTIVITY_CGNS:READ' 1273 &(file_id,typ_elem_bnd,nptfr,nbor,ierr)
1297 INTEGER,
INTENT(IN) :: FILE_ID,NPTFR,TYP_ELEM_BND
1298 INTEGER,
INTENT(INOUT) :: NBOR(nptfr)
1299 INTEGER,
INTENT(OUT) :: IERR
1301 #if defined (HAVE_CGNS) 1309 &
'GET_BND_IPOBO_CGNS:GET_CGNS_OBJ' 1313 & typ_elem,nbor,ierr)
1317 &
'GET_BND_NUMBERING_CGNS:GET_BND_CONNECTIVITY_CGNS' 1351 INTEGER,
INTENT(IN) :: FILE_ID
1352 INTEGER,
INTENT(IN) :: TYPE_BND_ELEM
1353 INTEGER,
INTENT(INOUT) :: NELEM
1354 INTEGER,
INTENT(OUT) :: IERR
1356 #if defined (HAVE_CGNS) 1362 &
'GET_BND_NELEM_CGNS:GET_CGNS_OBJ' 1386 &(file_id,typ_bnd_elt,nelebd,ndp,ikle,ierr)
1410 INTEGER,
INTENT(IN) :: FILE_ID
1411 INTEGER,
INTENT(IN) :: TYP_BND_ELT
1412 INTEGER,
INTENT(IN) :: NELEBD
1413 INTEGER,
INTENT(IN) :: NDP
1414 INTEGER,
INTENT(INOUT) :: IKLE(nelebd*ndp)
1415 INTEGER,
INTENT(OUT) :: IERR
1417 #if defined (HAVE_CGNS) 1420 DOUBLE PRECISION :: DDUM
1425 &
'GET_BND_CONNECTIVITY_CGNS:GET_CGNS_OBJ' 1437 READ(
cgns_obj_tab(cgns_id)%NCLI,*,iostat=ierr) idum,idum,idum,
1439 & ddum ,idum,ddum,ddum,ddum,
1446 &
'GET_BND_CONNECTIVITY_CGNS:READ:END OF FILE' 1449 ELSE IF (ierr.GT.0)
THEN 1454 &
'GET_BND_CONNECTIVITY_CGNS:READ' 1472 &(file_id,typ_bnd_elem,nptfr,lihbor,liubor,
1473 & livbor,hbor,ubor,vbor,chbord,trac,
1474 & litbor,tbor,atbor,btbor, ierr)
1509 INTEGER,
INTENT(IN) :: FILE_ID
1510 INTEGER,
INTENT(IN) :: TYP_BND_ELEM
1511 INTEGER,
INTENT(IN) :: NPTFR
1512 INTEGER,
INTENT(INOUT) :: LIUBOR(nptfr),LIVBOR(nptfr)
1513 INTEGER,
INTENT(INOUT) :: LIHBOR(nptfr),LITBOR(*)
1514 DOUBLE PRECISION,
INTENT(INOUT) :: UBOR(*),VBOR(*)
1515 DOUBLE PRECISION,
INTENT(INOUT) :: HBOR(nptfr),CHBORD(nptfr)
1516 DOUBLE PRECISION,
INTENT(INOUT) :: TBOR(nptfr),ATBOR(nptfr)
1517 DOUBLE PRECISION,
INTENT(INOUT) :: BTBOR(nptfr)
1518 LOGICAL,
INTENT(IN) :: TRAC
1519 INTEGER,
INTENT(OUT) :: IERR
1521 #if defined (HAVE_CGNS) 1524 DOUBLE PRECISION :: DDUM
1529 &
'GET_BND_VALUE_CGNS:GET_CGNS_OBJ' 1544 & lihbor(i),liubor(i),livbor(i),
1545 & hbor(i) ,ubor(i) ,vbor(i),
1546 & chbord(i) ,litbor(i),
1547 & tbor(i),atbor(i),btbor(i),
1551 & lihbor(i),liubor(i),livbor(i),
1552 & hbor(i) ,ubor(i) ,vbor(i),
1553 & chbord(i) ,idum,ddum,ddum,ddum,
1561 &
'GET_BND_VALUE_CGNS:READ:END OF FILE' 1564 ELSE IF (ierr.GT.0)
THEN 1569 &
'GET_BND_VALUE_CGNS:READ' 1587 &(file_id,type_bnd_elem,nptfr,ierr)
1609 INTEGER,
INTENT(IN) :: FILE_ID
1610 INTEGER,
INTENT(IN) :: TYPE_BND_ELEM
1611 INTEGER,
INTENT(INOUT) :: NPTFR
1612 INTEGER,
INTENT(OUT) :: IERR
1614 #if defined (HAVE_CGNS) 1620 &
'GET_BND_NPOIN_CGNS:GET_CGNS_OBJ' 1645 &(file_id,nvar,ierr)
1666 INTEGER,
INTENT(IN) :: FILE_ID
1667 INTEGER,
INTENT(INOUT) :: NVAR
1668 INTEGER,
INTENT(OUT) :: IERR
1670 #if defined (HAVE_CGNS) 1676 &
'GET_DATA_NVAR_CGNS:GET_CGNS_OBJ' 1694 &(file_id,nvar,var_list,unit_list,ierr)
1717 INTEGER,
INTENT(IN) :: FILE_ID
1718 INTEGER,
INTENT(IN) :: NVAR
1719 CHARACTER(LEN=16),
INTENT(INOUT) :: VAR_LIST(nvar)
1720 CHARACTER(LEN=16),
INTENT(INOUT) :: UNIT_LIST(nvar)
1721 INTEGER,
INTENT(OUT) :: IERR
1723 #if defined (HAVE_CGNS) 1726 CHARACTER(LEN=32) :: VARNAME
1732 &
'GET_DATA_VAR_LIST_CGNS:GET_CGNS_OBJ' 1738 CALL cg_field_info_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
1740 & ivar,datatype,varname,ierr)
1741 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
1745 &
'GET_DATA_VAR_LIST:CG_FIELD_INFO_F '//i2char(ivar)
1748 var_list(ivar) = varname(1:16)
1749 unit_list(ivar) = varname(16:32)
1764 &(file_id,ntimestep,ierr)
1785 INTEGER,
INTENT(IN) :: FILE_ID
1786 INTEGER,
INTENT(INOUT) :: NTIMESTEP
1787 INTEGER,
INTENT(OUT) :: IERR
1789 #if defined (HAVE_CGNS) 1795 &
'GET_DATA_NTIMESTEP_CGNS:GET_CGNS_OBJ' 1813 &(file_id,record,time,ierr)
1840 INTEGER,
INTENT(IN) :: FILE_ID
1841 INTEGER,
INTENT(IN) :: RECORD
1842 DOUBLE PRECISION,
INTENT(INOUT) :: TIME
1843 INTEGER,
INTENT(OUT) :: IERR
1845 #if defined (HAVE_CGNS) 1851 &
'GET_DATA_TIME_CGNS:GET_CGNS_OBJ' 1855 IF (record.LT.0)
THEN 1859 &
'GET_DATA_VAR_TIME_CGNS' 1866 &
'GET_DATA_VAR_TIME_CGNS' 1883 &(file_id,record,var_name,res_value,n,ierr)
1914 INTEGER,
INTENT(IN) :: FILE_ID
1915 INTEGER,
INTENT(IN) :: RECORD, N
1916 CHARACTER(LEN=16),
INTENT(IN) :: VAR_NAME
1917 DOUBLE PRECISION,
INTENT(INOUT) :: RES_VALUE(n)
1918 INTEGER,
INTENT(OUT) :: IERR
1920 #if defined (HAVE_CGNS) 1926 &
'GET_DATA_VALUE_CGNS:GET_CGNS_OBJ' 1931 CALL cg_field_read_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
1933 & var_name,realdouble,1,n,
1935 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
1939 &
'GET_DATA_VALUE_CGNS:CG_FIELD_READ_F' 1958 &(file_id,title,nvar,var_name,ierr)
1982 INTEGER,
INTENT(IN) :: FILE_ID
1983 CHARACTER(LEN=TITLE_SIZE),
INTENT(IN) :: TITLE
1984 INTEGER,
INTENT(IN) :: NVAR
1985 CHARACTER(LEN=VAR_SIZE),
INTENT(IN) :: VAR_NAME(nvar)
1986 INTEGER,
INTENT(OUT) :: IERR
1988 #if defined (HAVE_CGNS) 1996 &
'SET_HEADER_CGNS:GET_CGNS_OBJ' 2006 &
'ALLOCATING VARNAME' 2024 &(file_id,mesh_dim,typelt,ndp,nptfr,nptir,nelem,npoin,
2025 & ikle,ipobo,knolg,x,y,nplan,ierr,z)
2060 INTEGER ,
INTENT(IN) :: FILE_ID,NPLAN
2061 INTEGER,
INTENT(IN) :: MESH_DIM
2062 INTEGER,
INTENT(IN) :: TYPELT
2063 INTEGER,
INTENT(IN) :: NDP
2064 INTEGER,
INTENT(IN) :: NPTFR
2065 INTEGER,
INTENT(IN) :: NPTIR
2066 INTEGER,
INTENT(IN) :: NELEM
2067 INTEGER,
INTENT(IN) :: NPOIN
2068 INTEGER,
INTENT(IN) :: IKLE(ndp*nelem)
2069 INTEGER,
INTENT(IN) :: IPOBO(*)
2070 INTEGER,
INTENT(IN) :: KNOLG(*)
2071 DOUBLE PRECISION,
INTENT(IN) :: X(npoin),Y(npoin)
2072 INTEGER,
INTENT(OUT) :: IERR
2073 DOUBLE PRECISION,
INTENT(IN),
OPTIONAL :: Z(*)
2075 #if defined (HAVE_CGNS) 2077 INTEGER :: ISIZE(3,3)
2078 CHARACTER(LEN=32) :: BASENAME, ZONENAME
2079 INTEGER :: ICELLDIM, IPHYSDIM
2080 INTEGER,
ALLOCATABLE :: IELEM(:,:)
2082 INTEGER :: CGNS_TYPE_ELEM
2084 INTEGER :: INDEX_DIM, INDEX_COORD
2091 &
'SET_MESH_CGNS:GET_CGNS_OBJ' 2099 CALL cg_base_write_f(file_id,basename,icelldim,iphysdim,
2101 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
2105 &
'SET_MESH_CGNS:CG_BASE_WRITE_F' 2119 CALL cg_zone_write_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
2123 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
2127 &
'SET_MESH_CGNS:CG_ZONE_WRITE_F' 2131 CALL cg_coord_write_f(file_id,
2135 &
'CoordinateX',x,index_coord,ierr)
2136 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
2140 &
'SET_MESH_CGNS:CG_COORD_WRITE_F X' 2143 CALL cg_coord_write_f(file_id,
2147 &
'CoordinateY',y,index_coord,ierr)
2148 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
2152 &
'SET_MESH_CGNS:CG_COORD_WRITE_F Y' 2155 IF(mesh_dim.EQ.3)
THEN 2156 CALL cg_coord_write_f(file_id,
2160 &
'CoordinateZ',z,index_coord,ierr)
2161 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
2165 &
'SET_MESH_CGNS:CG_COORD_WRITE_F Z' 2170 ALLOCATE(ielem(ndp,nelem),stat=ierr)
2174 &
'ALLOCATING IELEM' 2180 ielem(j,i) = ikle((j-1)*nelem+i)
2187 SELECT CASE (typelt)
2189 cgns_type_elem = tri_3
2191 cgns_type_elem = quad_4
2193 cgns_type_elem = tetra_4
2195 cgns_type_elem = penta_6
2198 CALL cg_section_write_f(file_id,
2201 &
'Elem',cgns_type_elem,1,nelem,
2204 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
2208 &
'SET_MESH_CGNS:CG_SECTION_WRITE_F' 2260 &(file_id,var_name,time,record,first_var,var_value,n,ierr)
2288 INTEGER,
INTENT(IN) :: FILE_ID,N
2289 CHARACTER(LEN=VAR_SIZE),
INTENT(IN) :: VAR_NAME
2290 DOUBLE PRECISION,
INTENT(IN) :: TIME
2291 INTEGER,
INTENT(IN) :: RECORD
2292 LOGICAL,
INTENT(IN) :: FIRST_VAR
2293 DOUBLE PRECISION,
INTENT(IN) :: VAR_VALUE(n)
2294 INTEGER,
INTENT(OUT) :: IERR
2296 #if defined (HAVE_CGNS) 2298 CHARACTER(LEN=32) :: SOLNAME
2299 CHARACTER(LEN=32) :: SIDS_NAME
2300 DOUBLE PRECISION,
ALLOCATABLE :: TMP(:)
2305 &
'ADD_DATA_CGNS:GET_CGNS_OBJ' 2309 solname = repeat(
' ',32)
2310 solname =
'Time'//i2char(record+1)
2315 CALL cg_sol_write_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
2319 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
2323 &
'ADD_DATA_CGNS:CG_SOL_WRITE_F '//i2char(record)
2337 & cgns_id)%NTIMESTEP) = tmp
2339 & cgns_id)%NTIMESTEP+1) = time
2348 CALL cg_field_write_f(file_id,
cgns_obj_tab(cgns_id)%INDEX_BASE,
2352 IF(ierr.NE.cg_ok)
CALL cg_error_print_f
2356 &
'ADD_DATA_CGNS:CG_FIELD_WRITE_F '//var_name
2372 &(file_id,type_bnd_elt,nelebd,ndp,ikle,
2374 & livbor,hbor,ubor,vbor,chbord,
2375 & litbor,tbor,atbor,btbor,ierr)
2410 INTEGER,
INTENT(IN) :: FILE_ID
2411 INTEGER,
INTENT(IN) :: TYPE_BND_ELT
2412 INTEGER,
INTENT(IN) :: NELEBD
2413 INTEGER,
INTENT(IN) :: NDP
2414 INTEGER,
INTENT(IN) :: IKLE(nelebd*ndp)
2415 INTEGER,
INTENT(IN) :: LIUBOR(nelebd),LIVBOR(nelebd)
2416 INTEGER,
INTENT(IN) :: LIHBOR(nelebd),LITBOR(nelebd)
2417 DOUBLE PRECISION,
INTENT(IN) :: UBOR(nelebd),VBOR(nelebd)
2418 DOUBLE PRECISION,
INTENT(IN) :: HBOR(nelebd),CHBORD(nelebd)
2419 DOUBLE PRECISION,
INTENT(IN) :: TBOR(nelebd),ATBOR(nelebd)
2420 DOUBLE PRECISION,
INTENT(IN) :: BTBOR(nelebd)
2421 INTEGER,
INTENT(OUT) :: IERR
2423 #if defined (HAVE_CGNS) 2424 INTEGER :: CGNS_ID, I, NCLI
2429 &
'SET_BND_CGNS:GET_CGNS_OBJ' 2437 WRITE(ncli,4000,iostat=ierr) lihbor(i),liubor(i),livbor(i),
2438 & hbor(i),ubor(i),vbor(i),
2439 & chbord(i),litbor(i),
2440 & tbor(i),atbor(i),btbor(i),
2442 4000
FORMAT (1x,i2,1x,2(i1,1x),3(f24.12,1x),1x,
2443 & f24.12,3x,i1,1x,3(f24.12,1x),1i9,1x,1i9,
2444 & 1x,i10,1x,2(f27.15,1x),i8)
2448 &
'SET_BND_CGNS:WRITE:NCLI' 2465 &(var_name, sids_name)
2486 CHARACTER(LEN=VAR_SIZE),
INTENT(IN) :: VAR_NAME
2487 CHARACTER(LEN=32),
INTENT(OUT) :: SIDS_NAME
2489 CHARACTER(LEN=16) VAR
2492 var = var_name(1:16)
2493 sids_name = repeat(
' ',32)
2496 CASE(
"VITESSE U",
"VELOCITY U")
2497 sids_name =
"VelocityX" 2498 CASE(
"VITESSE V",
"VELOCITY V")
2499 sids_name =
"VelocityY" 2500 CASE(
"VITESSE W",
"VELOCITY W")
2501 sids_name =
"VelocityZ" 2503 DO i=1,len(trim(var))
2504 IF(var(i:i).EQ.
' '.OR.var(i:i).EQ.
"'")
THEN 2505 sids_name(i:i) =
'_' 2507 sids_name(i:i) = var(i:i)
integer, dimension(max_file) hash
subroutine open_bnd_cgns(FILE_NAME, FILE_ID, OPENMODE, IERR)
subroutine varname2sids(VAR_NAME, SIDS_NAME)
integer, parameter title_size
subroutine get_bnd_connectivity_cgns(FILE_ID, TYP_BND_ELT, NELEBD, NDP, IKLE, IERR)
integer, parameter prism_elt_type
subroutine close_mesh_cgns(FILE_ID, IERR)
subroutine get_bnd_nelem_cgns(FILE_ID, TYPE_BND_ELEM, NELEM, IERR)
subroutine add_obj(HASH, FILE_ID, HASHED_ID, IERR)
subroutine get_mesh_npoin_per_element_cgns(FILE_ID, TYP_ELT, NDP, IERR)
type(cgns_info), dimension(max_file) cgns_obj_tab
subroutine get_bnd_ipobo_cgns(FILE_ID, TYPE_BND_ELEM, NPOIN, IPOBO, IERR)
subroutine get_obj(HASH, FILE_ID, HASHED_ID, IERR)
integer, parameter triangle_elt_type
subroutine get_data_ntimestep_cgns(FILE_ID, NTIMESTEP, IERR)
subroutine get_mesh_nelem_cgns(FILE_ID, TYP_ELT, NELEM, IERR)
character(len=200) error_message
subroutine get_bnd_npoin_cgns(FILE_ID, TYPE_BND_ELEM, NPTFR, IERR)
subroutine get_data_var_list_cgns(FILE_ID, NVAR, VAR_LIST, UNIT_LIST, IERR)
integer, parameter point_bnd_elt_type
subroutine get_bnd_numbering_cgns(FILE_ID, TYP_ELEM_BND, NPTFR, NBOR, IERR)
subroutine get_mesh_title_cgns(FILE_ID, TITLE, IERR)
subroutine set_header_cgns(FILE_ID, TITLE, NVAR, VAR_NAME, IERR)
subroutine get_data_time_cgns(FILE_ID, RECORD, TIME, IERR)
subroutine get_data_value_cgns(FILE_ID, RECORD, VAR_NAME, RES_VALUE, N, IERR)
integer, parameter hermes_record_unknown_err
integer, parameter hermes_cgns_not_loaded_err
integer, parameter max_file
subroutine get_mesh_l2g_numbering_cgns(FILE_ID, KNOLG, NPOIN, IERR)
subroutine set_mesh_cgns(FILE_ID, MESH_DIM, TYPELT, NDP, NPTFR, NPTIR, NELEM, NPOIN, IKLE, IPOBO, KNOLG, X, Y, NPLAN, IERR, Z)
subroutine get_mesh_connectivity_cgns(FILE_ID, TYP_ELT, IKLE, NELEM, NDP, IERR)
subroutine close_bnd_cgns(FILE_ID, IERR)
integer, parameter tetrahedron_elt_type
integer, parameter quadrangle_elt_type
subroutine get_mesh_nplan_cgns(FILE_ID, NPLAN, IERR)
subroutine get_bnd_value_cgns(FILE_ID, TYP_BND_ELEM, NPTFR, LIHBOR, LIUBOR, LIVBOR, HBOR, UBOR, VBOR, CHBORD, TRAC, LITBOR, TBOR, ATBOR, BTBOR, IERR)
subroutine add_data_cgns(FILE_ID, VAR_NAME, TIME, RECORD, FIRST_VAR, VAR_VALUE, N, IERR)
integer, parameter var_size
subroutine get_data_nvar_cgns(FILE_ID, NVAR, IERR)
subroutine get_mesh_nptir_cgns(FILE_ID, NPTIR, IERR)
subroutine set_bnd_cgns(FILE_ID, TYPE_BND_ELT, NELEBD, NDP, IKLE, LIHBOR, LIUBOR, LIVBOR, HBOR, UBOR, VBOR, CHBORD, LITBOR, TBOR, ATBOR, BTBOR, IERR)
integer, parameter hermes_wrong_element_type_err
subroutine open_mesh_cgns(FILE_NAME, FILE_ID, OPENMODE, IERR)
subroutine get_mesh_npoin_cgns(FILE_ID, TYP_ELT, NPOIN, IERR)
subroutine get_mesh_dimension_cgns(FILE_ID, NDIM, IERR)
subroutine get_mesh_coord_cgns(FILE_ID, JDIM, NPOIN, COORD, IERR)