Just now I was asked this question. FND_FILE writes to which directory ? Oracle documentation says that FND_FILE writes to $APPLPTMP. This happens only when the $APPLPTMP directory is the first directory in the db init parameter utl_file_dir. If it so happens that /usr/tmp is the first directory in your utl_file_dir, FND_FILE is going to write to /usr/tmp and not to $APPLPTMP. This can be tested:
If you go to sqlplus and exec FND_FILE.PUT_LINE(FND_FILE.LOG, 'THIS IS A TEST');
A new file with a name like lnnnnnnnn.tmp is created in /usr/tmp containing the text: 'THIS IS A TEST'. /usr/tmp is the first directory in utl_file_dir.
Metalink Note 261693.1 has information on troubleshooting ORA-20100 on Concurrent Processing, which is where FND_FILE is involved.