How to call a specific subroutine of an AppleScript from another AppleScript?
AppleScript's load script

AppleScript's load script command will do what you want.

Example

On your Desktop, save a .scpt file containing the following saySomething handler:

on saySomething()
    say "hello"
end saySomething


Then within another script you can call saySomething: 

set myOtherScript to load script (alias ((path to desktop folder as string) &amp; "external.scpt"))
myOtherScript's saySomething()


The returned object from load script is a script object. Once loaded, the script object is treated as local and can have its local handles called, including with parameters.

See Can I put shared applescript code in a separate file and load it in various scripts? for more examples.