In order to write EFs you need to have a work directory which is set up with the necessary Ferret common files and the utility library. If you are reading this file you probably already have these. Just to be sure, here is a parts list:
Makefile README.html add_9.F avet.F custom.F efn/ ferret_cmn@ pass_thru.F platform_specific_flags.mk.alpha platform_specific_flags.mk.solaris subtract.F times_table.F
You have one Makefile and 2(+) platform_specific... files which are included by the Makefile.
You have 6(+) example files ending in ".F".
You have the efn/ directory where the utility code and common files live.
ferret_cmn is a soft link to efn/ferret_cmn.
The efn/ directory looks like this:
EFN_Util.c EFN_Util.h LIB_NAME Makefile SOURCE_FILES efn_get_arg_ss_extremes_sub.F efn_get_arg_subscripts_sub.F efn_get_box_size_sub.F efn_get_coordinates_sub.F efn_get_one_val_sub.F efn_get_one_val_sub_sub.F efn_get_res_subscripts_sub.F efn_set_arg_desc.F efn_set_arg_name.F efn_set_arg_unit.F efn_set_custom_axis.F efn_set_desc.F ferret_cmn/
If you are on a DEC alpha or a SUN running solaris you should be able to type "make" in the top directory and have the utility library and all of the example code compiled. And don't forget to set the FER_EXTERNAL_FUNCTIONS environment variable:
> setenv FER_EXTERNAL_FUNCTIONS ./myfuncs > makeFerret should now be able to access the example functions. You can check this with
yes? show func/ext