in INTERP.H
DECLARE_DO_FUN( do_frecall		);

in INTERP.C
    { "frecall",    do_frecall,     POS_DEAD,       IM,  LOG_NORMAL, 1 },

in ACT_WIZ.C
at the top add the function protocall
void do_frecall( CHAR_DATA *ch, char *argument );


at the end add this

/*
 * forced recall for when a player was accidentally trapped in a
 * no recall, no teleport, type area.
 * It should only be used if the imm was at fualt for the mess
 * It give a message on wiznet.
 *
 * (c) 2000 TAKA Ghost Dancer MUD Project
 * a PYROX - ribbed for her pleasure - original idea!
 *
 * It will only transfer them to the temple vnum nowhere else
 * so i believe it safe for a low level imm.
 */

void do_frecall( CHAR_DATA *ch, char *argument )
{
	char arg[MAX_INPUT_LENGTH];
	char buf[MAX_STRING_LENGTH];
	CHAR_DATA *victim;

	one_argument( argument, arg );

	if ( arg[0] == '\0' )
	{
		send_to_char( "{RForce Recall whom?{x\n\r", ch );
		return;
	}

	if ( ( victim = get_char_world( ch, arg ) ) == NULL )
	{
		send_to_char( "{RThey aren't here.{x\n\r", ch );
		return;
	}

	if ( IS_NPC(victim) )
	{
		send_to_char( "{RNot on NPC's.{x\n\r", ch );
		return;
	}

	if ( get_trust( victim ) >= get_trust( ch ) )
	{
		send_to_char( "{RYou failed.{x\n\r", ch );
		return;
	}

	sprintf(buf,"$N force recalled %s",victim->name);
	wiznet(buf,ch,NULL,WIZ_PENALTIES,WIZ_SECURE,0);
	send_to_char( "Force Recall Done.\n\r", ch );

	stop_fighting(victim,TRUE);
	sprintf( buf, "%s %d", victim->name, ROOM_VNUM_TEMPLE );

	do_transfer( ch, buf);

	return;
}