granularity: each sample hit covers 4 byte(s) for 0.00% of 666.88 seconds flat profile: %time the percentage of the total running time of the program used by this function. cumsecs a running sum of the number of seconds accounted for by this function and those listed above it. seconds the number of seconds accounted for by this function alone. This is the major sort for this listing. calls the number of times this function was invoked, if this function is profiled, else blank. name the name of the function. This is the minor sort for this listing. %time cumsecs seconds calls msec/call name 47.6 317.71 317.71 1600 198.57 filter 15.5 421.09 103.38 1600 64.61 fct 7.9 473.47 52.38 400 130.95 trans1 6.9 519.58 46.11 400 115.28 trans2 6.1 559.97 40.39 1600 25.24 artdif 4.9 592.52 32.55 200 162.75 tistep 4.1 620.02 27.50 200 137.50 advnce 3.0 640.17 20.15 201 100.25 cut 1.9 652.56 12.39 200 61.95 stagf1 1.7 663.89 11.33 201 56.37 vpr 0.1 664.30 0.41 __cnv_cf 0.1 664.71 0.41 __io_tn1 0.1 665.07 0.36 1600 0.22 b1 0.0 665.30 0.23 200 1.15 bbh 0.0 665.51 0.21 _mcount 0.0 665.66 0.15 3 50.00 vps 0.0 665.79 0.13 read_to_newline 0.0 665.91 0.12 200 0.60 bbf 0.0 666.01 0.10 FTN_S_RSFE 0.0 666.10 0.09 __a_c_t 0.0 666.18 0.08 64489 0.00 _memccpy 0.0 666.26 0.08 64332 0.00 fgets_unlocked 0.0 666.33 0.07 128686 0.00 isdigit 0.0 666.40 0.07 3 23.33 con 0.0 666.47 0.07 __cnv_ci 0.0 666.53 0.06 __in_buf 0.0 666.58 0.05 ftn_get_fmt_int 0.0 666.62 0.04 400 0.10 b2 0.0 666.66 0.04 __get_ioblock 0.0 666.69 0.03 FTN_DO_D8IO 0.0 666.72 0.03 FTN_E_RSFE 0.0 666.75 0.03 __new_rc 0.0 666.78 0.03 gt_chr 0.0 666.80 0.02 64332 0.00 fgets 0.0 666.82 0.02 1 20.00 inimod 0.0 666.83 0.01 74296 0.00 memcpy 0.0 666.84 0.01 __f_eo 0.0 666.85 0.01 __f_fo 0.0 666.86 0.01 __fl_out 0.0 666.87 0.01 __ftn_ldr_in 0.0 666.88 0.01 __start_globals 0.0 666.88 0.00 1630 0.00 _abs 0.0 666.88 0.00 653 0.00 fwrite 0.0 666.88 0.00 644 0.00 memmove 0.0 666.88 0.00 401 0.00 adlen 0.0 666.88 0.00 200 0.00 output 0.0 666.88 0.00 166 0.00 __filbuf 0.0 666.88 0.00 166 0.00 _read_sys 0.0 666.88 0.00 166 0.00 read 0.0 666.88 0.00 14 0.00 _ioctl 0.0 666.88 0.00 14 0.00 _ioctl_sys 0.0 666.88 0.00 14 0.00 tree_insert 0.0 666.88 0.00 11 0.00 cl_c_702a_tree_delete 0.0 666.88 0.00 11 0.00 malloc 0.0 666.88 0.00 9 0.00 isatty 0.0 666.88 0.00 5 0.00 _brk 0.0 666.88 0.00 4 0.00 _findbuf 0.0 666.88 0.00 4 0.00 _write 0.0 666.88 0.00 4 0.00 _write_sys 0.0 666.88 0.00 4 0.00 _xflsbuf 0.0 666.88 0.00 3 0.00 _lseek 0.0 666.88 0.00 3 0.00 grow_arena 0.0 666.88 0.00 3 0.00 sbrk 0.0 666.88 0.00 2 0.00 __fflush_unlocked 0.0 666.88 0.00 2 0.00 _findiop 0.0 666.88 0.00 2 0.00 _open 0.0 666.88 0.00 2 0.00 _open_sys 0.0 666.88 0.00 2 0.00 _wrtchk 0.0 666.88 0.00 2 0.00 brk 0.0 666.88 0.00 2 0.00 cl_a_702a_tree_delete 0.0 666.88 0.00 2 0.00 fdopen 0.0 666.88 0.00 2 0.00 fseek 0.0 666.88 0.00 2 0.00 sb_nvmatch 0.0 666.88 0.00 2 0.00 strcpy 0.0 666.88 0.00 2 0.00 strncpy 0.0 666.88 0.00 1 0.00 _atexit 0.0 666.88 0.00 1 0.00 _profil 0.0 666.88 0.00 1 0.00 calloc 0.0 666.88 0.00 1 0.00 exit 0.0 666.88 0.00 1 0.00 ftell 0.0 666.88 0.00 1 0.00 ftruncate 0.0 666.88 0.00 1 0.00 getenv 0.0 666.88 0.00 1 0.00 gridco 0.0 666.88 0.00 1 0.00 hyd2d 0.0 666.88 0.00 1 0.00 inpdta 0.0 666.88 0.00 1 0.00 node_alloc 0.0 666.88 0.00 1 0.00 prepar call graph profile: The sum of self and descendents is the major sort for this listing. function entries: index the index of the function in the call graph listing, as an aid to locating it (see below). %time the percentage of the total time of the program accounted for by this function and its descendents. self the number of seconds spent in this function itself. descendents the number of seconds spent in the descendents of this function on behalf of this function. called the number of times this function is called (other than recursive calls). self the number of times this function calls itself recursively. name the name of the function, with an indication of its membership in a cycle, if any. index the index of the function in the call graph listing, as an aid to locating it. parent listings: self* the number of seconds of this function's self time which is due to calls from this parent. descendents* the number of seconds of this function's descendent time which is due to calls from this parent. called** the number of times this function is called by this parent. This is the numerator of the fraction which divides up the function's time to its parents. total* the number of times this function was called by all of its parents. This is the denominator of the propagation fraction. parents the name of this parent, with an indication of the parent's membership in a cycle, if any. index the index of this parent in the call graph listing, as an aid in locating it. children listings: self* the number of seconds of this child's self time which is due to being called by this function. descendent* the number of seconds of this child's descendent's time which is due to being called by this function. called** the number of times this child is called by this function. This is the numerator of the propagation fraction for this child. total* the number of times this child is called by all functions. This is the denominator of the propagation fraction. children the name of this child, and an indication of its membership in a cycle, if any. index the index of this child in the call graph listing, as an aid to locating it. * these fields are omitted for parents (or children) in the same cycle as the function. If the function (or child) is a member of a cycle, the propagated times and propagation denominator represent the self time and descendent time of the cycle as a whole. ** static-only parents and children are indicated by a call count of 0. cycle listings: the cycle as a whole is listed with the same fields as a function entry. Below it are listed the members of the cycle, and their contributions to the time and call counts of the cycle. granularity: each sample hit covers 4 byte(s) for 0.00% of 666.67 seconds called/total parents index %time self descendents called+self name index called/total children 0.00 664.88 1/1 $START$ [2] [1] 99.7 0.00 664.88 1 hyd2d [1] 27.50 573.11 200/200 advnce [3] 32.55 0.00 200/200 tistep [9] 20.15 0.00 201/201 cut [10] 11.33 0.00 201/201 vpr [12] 0.15 0.00 3/3 vps [20] 0.07 0.00 3/3 con [27] 0.02 0.00 1/1 inimod [36] 0.00 0.00 200/200 output [50] 0.00 0.00 1/1 inpdta [71] 0.00 0.00 1/1 prepar [73] 0.00 0.00 1/1 gridco [70] 0.00 0.00 1/401 adlen [49] ----------------------------------------------- [2] 99.7 0.00 664.88 $START$ [2] 0.00 664.88 1/1 hyd2d [1] ----------------------------------------------- 27.50 573.11 200/200 hyd2d [1] [3] 90.1 27.50 573.11 200 advnce [3] 103.38 358.10 1600/1600 fct [4] 52.38 0.00 400/400 trans1 [6] 46.11 0.00 400/400 trans2 [7] 12.39 0.18 200/200 stagf1 [11] 0.23 0.00 200/200 bbh [17] 0.18 0.00 800/1600 b1 [15] 0.12 0.00 200/200 bbf [22] 0.04 0.00 400/400 b2 [30] 0.00 0.00 400/401 adlen [49] ----------------------------------------------- 103.38 358.10 1600/1600 advnce [3] [4] 69.2 103.38 358.10 1600 fct [4] 317.71 0.00 1600/1600 filter [5] 40.39 0.00 1600/1600 artdif [8] ----------------------------------------------- 317.71 0.00 1600/1600 fct [4] [5] 47.7 317.71 0.00 1600 filter [5] ----------------------------------------------- 52.38 0.00 400/400 advnce [3] [6] 7.9 52.38 0.00 400 trans1 [6] ----------------------------------------------- 46.11 0.00 400/400 advnce [3] [7] 6.9 46.11 0.00 400 trans2 [7] ----------------------------------------------- 40.39 0.00 1600/1600 fct [4] [8] 6.1 40.39 0.00 1600 artdif [8] ----------------------------------------------- 32.55 0.00 200/200 hyd2d [1] [9] 4.9 32.55 0.00 200 tistep [9] ----------------------------------------------- 20.15 0.00 201/201 hyd2d [1] [10] 3.0 20.15 0.00 201 cut [10] ----------------------------------------------- 12.39 0.18 200/200 advnce [3] [11] 1.9 12.39 0.18 200 stagf1 [11] 0.18 0.00 800/1600 b1 [15] ----------------------------------------------- 11.33 0.00 201/201 hyd2d [1] [12] 1.7 11.33 0.00 201 vpr [12] ----------------------------------------------- [13] 0.1 0.41 0.00 __cnv_cf [13] ----------------------------------------------- [14] 0.1 0.41 0.00 __io_tn1 [14] ----------------------------------------------- 0.18 0.00 800/1600 advnce [3] 0.18 0.00 800/1600 stagf1 [11] [15] 0.1 0.36 0.00 1600 b1 [15] ----------------------------------------------- [16] 0.0 0.13 0.18 read_to_newline [16] 0.02 0.16 64332/64332 fgets [18] ----------------------------------------------- 0.23 0.00 200/200 advnce [3] [17] 0.0 0.23 0.00 200 bbh [17] ----------------------------------------------- 0.02 0.16 64332/64332 read_to_newline [16] [18] 0.0 0.02 0.16 64332 fgets [18] 0.08 0.08 64332/64332 fgets_unlocked [19] ----------------------------------------------- 0.08 0.08 64332/64332 fgets [18] [19] 0.0 0.08 0.08 64332 fgets_unlocked [19] 0.08 0.00 64489/64489 _memccpy [25] 0.00 0.00 166/166 __filbuf [497] ----------------------------------------------- 0.15 0.00 3/3 hyd2d [1] [20] 0.0 0.15 0.00 3 vps [20] ----------------------------------------------- [21] 0.0 0.07 0.07 __cnv_ci [21] 0.07 0.00 128657/128686 isdigit [26] ----------------------------------------------- 0.12 0.00 200/200 advnce [3] [22] 0.0 0.12 0.00 200 bbf [22] ----------------------------------------------- [23] 0.0 0.10 0.00 FTN_S_RSFE [23] ----------------------------------------------- [24] 0.0 0.09 0.00 __a_c_t [24] ----------------------------------------------- 0.08 0.00 64489/64489 fgets_unlocked [19] [25] 0.0 0.08 0.00 64489 _memccpy [25] ----------------------------------------------- 0.00 0.00 29/128686 __ftn_ldr_in [38] 0.07 0.00 128657/128686 __cnv_ci [21] [26] 0.0 0.07 0.00 128686 isdigit [26] ----------------------------------------------- 0.07 0.00 3/3 hyd2d [1] [27] 0.0 0.07 0.00 3 con [27] ----------------------------------------------- [28] 0.0 0.06 0.01 __in_buf [28] 0.01 0.00 64326/74296 memcpy [39] ----------------------------------------------- [29] 0.0 0.05 0.00 ftn_get_fmt_int [29] ----------------------------------------------- 0.04 0.00 400/400 advnce [3] [30] 0.0 0.04 0.00 400 b2 [30] ----------------------------------------------- [31] 0.0 0.04 0.00 __get_ioblock [31] ----------------------------------------------- [32] 0.0 0.03 0.00 __new_rc [32] 0.00 0.00 653/653 fwrite [45] ----------------------------------------------- [33] 0.0 0.03 0.00 FTN_DO_D8IO [33] ----------------------------------------------- [34] 0.0 0.03 0.00 FTN_E_RSFE [34] ----------------------------------------------- [35] 0.0 0.03 0.00 gt_chr [35] ----------------------------------------------- 0.02 0.00 1/1 hyd2d [1] [36] 0.0 0.02 0.00 1 inimod [36] ----------------------------------------------- [37] 0.0 0.01 0.00 __fl_out [37] 0.00 0.00 644/644 memmove [46] ----------------------------------------------- [38] 0.0 0.01 0.00 __ftn_ldr_in [38] 0.00 0.00 29/128686 isdigit [26] 0.00 0.00 14/74296 memcpy [39] ----------------------------------------------- 0.00 0.00 4/74296 __io_tl1 [48] 0.00 0.00 14/74296 __ftn_ldr_in [38] 0.00 0.00 28/74296 ld_out [47] 0.00 0.00 644/74296 memmove [46] 0.00 0.00 656/74296 fwrite [45] 0.00 0.00 3108/74296 __out_buf [44] 0.00 0.00 5516/74296 __f_io [43] 0.01 0.00 64326/74296 __in_buf [28] [39] 0.0 0.01 0.00 74296 memcpy [39] ----------------------------------------------- [40] 0.0 0.01 0.00 __f_eo [40] 0.00 0.00 1630/1630 _abs [496] ----------------------------------------------- [41] 0.0 0.01 0.00 __f_fo [41] ----------------------------------------------- [42] 0.0 0.01 0.00 __start_globals [42] ----------------------------------------------- [43] 0.0 0.00 0.00 __f_io [43] 0.00 0.00 5516/74296 memcpy [39] ----------------------------------------------- [44] 0.0 0.00 0.00 __out_buf [44] 0.00 0.00 3108/74296 memcpy [39] ----------------------------------------------- 0.00 0.00 653/653 __new_rc [32] [45] 0.0 0.00 0.00 653 fwrite [45] 0.00 0.00 656/74296 memcpy [39] 0.00 0.00 4/4 _xflsbuf [505] 0.00 0.00 2/2 _wrtchk [511] ----------------------------------------------- 0.00 0.00 644/644 __fl_out [37] [46] 0.0 0.00 0.00 644 memmove [46] 0.00 0.00 644/74296 memcpy [39] ----------------------------------------------- [47] 0.0 0.00 0.00 ld_out [47] 0.00 0.00 28/74296 memcpy [39] ----------------------------------------------- [48] 0.0 0.00 0.00 __io_tl1 [48] 0.00 0.00 4/74296 memcpy [39] ----------------------------------------------- 0.00 0.00 1/401 hyd2d [1] 0.00 0.00 400/401 advnce [3] [49] 0.0 0.00 0.00 401 adlen [49] ----------------------------------------------- 0.00 0.00 200/200 hyd2d [1] [50] 0.0 0.00 0.00 200 output [50] ----------------------------------------------- 0.00 0.00 166/166 __filbuf [497] [51] 0.0 0.00 0.00 166 read [51] 0.00 0.00 166/166 _read_sys [498] ----------------------------------------------- 0.00 0.00 3/14 grow_arena [56] 0.00 0.00 11/14 malloc [54] [52] 0.0 0.00 0.00 14 tree_insert [52] ----------------------------------------------- 0.00 0.00 11/11 malloc [54] [53] 0.0 0.00 0.00 11 cl_c_702a_tree_delete [53] ----------------------------------------------- 0.00 0.00 1/11 calloc [65] 0.00 0.00 2/11 _findbuf [502] 0.00 0.00 8/11 __alloc_buf [545] [54] 0.0 0.00 0.00 11 malloc [54] 0.00 0.00 11/11 cl_c_702a_tree_delete [53] 0.00 0.00 11/14 tree_insert [52] 0.00 0.00 3/3 grow_arena [56] 0.00 0.00 1/2 brk [58] 0.00 0.00 1/1 node_alloc [72] ----------------------------------------------- 0.00 0.00 2/9 __op_do [636] 0.00 0.00 3/9 F77_FSET [170] 0.00 0.00 4/9 _findbuf [502] [55] 0.0 0.00 0.00 9 isatty [55] 0.00 0.00 9/14 _ioctl [499] ----------------------------------------------- 0.00 0.00 3/3 malloc [54] [56] 0.0 0.00 0.00 3 grow_arena [56] 0.00 0.00 3/14 tree_insert [52] 0.00 0.00 2/3 sbrk [57] 0.00 0.00 2/2 cl_a_702a_tree_delete [59] 0.00 0.00 1/2 brk [58] ----------------------------------------------- 0.00 0.00 1/3 node_alloc [72] 0.00 0.00 2/3 grow_arena [56] [57] 0.0 0.00 0.00 3 sbrk [57] 0.00 0.00 3/5 _brk [501] ----------------------------------------------- 0.00 0.00 1/2 grow_arena [56] 0.00 0.00 1/2 malloc [54] [58] 0.0 0.00 0.00 2 brk [58] 0.00 0.00 2/5 _brk [501] ----------------------------------------------- 0.00 0.00 2/2 grow_arena [56] [59] 0.0 0.00 0.00 2 cl_a_702a_tree_delete [59] ----------------------------------------------- 0.00 0.00 2/2 __op_do [636] [60] 0.0 0.00 0.00 2 fdopen [60] 0.00 0.00 2/2 _findiop [508] ----------------------------------------------- 0.00 0.00 1/2 __FTN_S_WSFE [543] 0.00 0.00 1/2 FTN_S_WSLE [204] [61] 0.0 0.00 0.00 2 fseek [61] 0.00 0.00 2/2 __fflush_unlocked [507] 0.00 0.00 2/3 _lseek [506] ----------------------------------------------- 0.00 0.00 2/2 getenv [69] [62] 0.0 0.00 0.00 2 sb_nvmatch [62] ----------------------------------------------- 0.00 0.00 2/2 __ftn_op_mov [587] [63] 0.0 0.00 0.00 2 strcpy [63] ----------------------------------------------- 0.00 0.00 2/2 FTN_F_OPEN [191] [64] 0.0 0.00 0.00 2 strncpy [64] ----------------------------------------------- 0.00 0.00 1/1 __calloc_buf [547] [65] 0.0 0.00 0.00 1 calloc [65] 0.00 0.00 1/11 malloc [54] ----------------------------------------------- 0.00 0.00 1/1 FTN_WS_STOP [207] [66] 0.0 0.00 0.00 1 exit [66] ----------------------------------------------- 0.00 0.00 1/1 __ftn_do_end [577] [67] 0.0 0.00 0.00 1 ftell [67] 0.00 0.00 1/3 _lseek [506] ----------------------------------------------- 0.00 0.00 1/1 __ftn_do_end [577] [68] 0.0 0.00 0.00 1 ftruncate [68] ----------------------------------------------- 0.00 0.00 1/1 __ftn_f_init [585] [69] 0.0 0.00 0.00 1 getenv [69] 0.00 0.00 2/2 sb_nvmatch [62] ----------------------------------------------- 0.00 0.00 1/1 hyd2d [1] [70] 0.0 0.00 0.00 1 gridco [70] ----------------------------------------------- 0.00 0.00 1/1 hyd2d [1] [71] 0.0 0.00 0.00 1 inpdta [71] ----------------------------------------------- 0.00 0.00 1/1 malloc [54] [72] 0.0 0.00 0.00 1 node_alloc [72] 0.00 0.00 1/3 sbrk [57] ----------------------------------------------- 0.00 0.00 1/1 hyd2d [1] [73] 0.0 0.00 0.00 1 prepar [73] ----------------------------------------------- 0.00 0.00 1630/1630 __f_eo [40] [496] 0.0 0.00 0.00 1630 _abs [496] ----------------------------------------------- 0.00 0.00 166/166 fgets_unlocked [19] [497] 0.0 0.00 0.00 166 __filbuf [497] 0.00 0.00 166/166 read [51] 0.00 0.00 2/4 _findbuf [502] ----------------------------------------------- 0.00 0.00 166/166 read [51] [498] 0.0 0.00 0.00 166 _read_sys [498] ----------------------------------------------- 0.00 0.00 2/14 __op_do [636] 0.00 0.00 3/14 F77_FSET [170] 0.00 0.00 9/14 isatty [55] [499] 0.0 0.00 0.00 14 _ioctl [499] 0.00 0.00 14/14 _ioctl_sys [500] ----------------------------------------------- 0.00 0.00 14/14 _ioctl [499] [500] 0.0 0.00 0.00 14 _ioctl_sys [500] ----------------------------------------------- 0.00 0.00 2/5 brk [58] 0.00 0.00 3/5 sbrk [57] [501] 0.0 0.00 0.00 5 _brk [501] ----------------------------------------------- 0.00 0.00 2/4 __filbuf [497] 0.00 0.00 2/4 _wrtchk [511] [502] 0.0 0.00 0.00 4 _findbuf [502] 0.00 0.00 4/9 isatty [55] 0.00 0.00 2/11 malloc [54] ----------------------------------------------- 0.00 0.00 4/4 _xflsbuf [505] [503] 0.0 0.00 0.00 4 _write [503] 0.00 0.00 4/4 _write_sys [504] ----------------------------------------------- 0.00 0.00 4/4 _write [503] [504] 0.0 0.00 0.00 4 _write_sys [504] ----------------------------------------------- 0.00 0.00 4/4 fwrite [45] [505] 0.0 0.00 0.00 4 _xflsbuf [505] 0.00 0.00 4/4 _write [503] ----------------------------------------------- 0.00 0.00 1/3 ftell [67] 0.00 0.00 2/3 fseek [61] [506] 0.0 0.00 0.00 3 _lseek [506] ----------------------------------------------- 0.00 0.00 2/2 fseek [61] [507] 0.0 0.00 0.00 2 __fflush_unlocked [507] ----------------------------------------------- 0.00 0.00 2/2 fdopen [60] [508] 0.0 0.00 0.00 2 _findiop [508] ----------------------------------------------- 0.00 0.00 2/2 __op_do [636] [509] 0.0 0.00 0.00 2 _open [509] 0.00 0.00 2/2 _open_sys [510] ----------------------------------------------- 0.00 0.00 2/2 _open [509] [510] 0.0 0.00 0.00 2 _open_sys [510] ----------------------------------------------- 0.00 0.00 2/2 fwrite [45] [511] 0.0 0.00 0.00 2 _wrtchk [511] 0.00 0.00 2/4 _findbuf [502] ----------------------------------------------- 0.00 0.00 1/1 _monstartup [696] [512] 0.0 0.00 0.00 1 _atexit [512] ----------------------------------------------- 0.00 0.00 1/1 _moncontrol [695] [513] 0.0 0.00 0.00 1 _profil [513] ----------------------------------------------- Aug 28 23:07 1995 index Page 1 33 FTN_DO_D8IO 19 fgets_unlocked 25 _memccpy 34 FTN_E_RSFE 497 __filbuf 39 memcpy 23 FTN_S_RSFE 5 filter 46 memmove 2 $START$ 502 _findbuf 32 __new_rc 24 __a_c_t 508 _findiop 72 node_alloc 496 _abs 37 __fl_out 509 _open 49 adlen 61 fseek 510 _open_sys 3 advnce 67 ftell 44 __out_buf 8 artdif 29 ftn_get_fmt_int 50 output 512 _atexit 38 __ftn_ldr_in 73 prepar 15 b1 68 ftruncate 513 _profil 30 b2 45 fwrite 51 read 22 bbf 31 __get_ioblock 498 _read_sys 17 bbh 69 getenv 16 read_to_newline 58 brk 70 gridco 62 sb_nvmatch 501 _brk 56 grow_arena 57 sbrk 65 calloc 35 gt_chr 11 stagf1 59 cl_a_702a_tree_delete 1 hyd2d 42 __start_globals 53 cl_c_702a_tree_delete 28 __in_buf 63 strcpy 13 __cnv_cf 36 inimod 64 strncpy 21 __cnv_ci 71 inpdta 9 tistep 27 con 48 __io_tl1 6 trans1 10 cut 14 __io_tn1 7 trans2 66 exit 499 _ioctl 52 tree_insert 40 __f_eo 500 _ioctl_sys 12 vpr 41 __f_fo 55 isatty 20 vps 43 __f_io 26 isdigit 503 _write 4 fct 47 ld_out 504 _write_sys 60 fdopen 506 _lseek 511 _wrtchk 507 __fflush_unlocked 54 malloc 505 _xflsbuf 18 fgets