Skip to content
Snippets Groups Projects
drexec.c 12.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • JAB's avatar
    JAB committed
    #include "DitsFix.h"
    #include "Sdp.h"
    #include "Git.h"
    #include "dul_err.h"
    
    Ron's avatar
    Ron committed
    #include "drs_err.h" 
    
    Ron's avatar
    Ron committed
    
    /* globals */
    
    Ron's avatar
    Ron committed
    /* string containing drexec version */
    
    char versionStr[128];
    
    
    Ron's avatar
    Ron committed
    /* externals */
    extern void tdfio_init_();
    extern void combine_image_(DitsArgType*,StatusType*);
    extern void combine_spectra_(DitsArgType*,StatusType*);
    
    Ron's avatar
    Ron committed
    /* extern void flx_calib_(DitsArgType*,StatusType*); */
    /* extern void gen_calib_(DitsArgType*,StatusType*); */
    
    Ron's avatar
    Ron committed
    extern void cmfim_gfibpos_(DitsArgType*,StatusType*);
    
    Ron's avatar
    Ron committed
    extern void plot_(DitsArgType*,StatusType*);
    
    Ron's avatar
    Ron committed
    extern void reduce_arc_(DitsArgType*,StatusType*);
    extern void reduce_bias_(DitsArgType*,StatusType*);
    extern void reduce_fflat_(DitsArgType*,StatusType*);
    extern void reduce_lflat_(DitsArgType*,StatusType*);
    extern void reduce_object_(DitsArgType*,StatusType*);
    extern void reduce_sky_(DitsArgType*,StatusType*);
    extern void splice_aaomega_(DitsArgType*,StatusType*);
    
    
    Ron's avatar
    Ron committed
    /* forward declarations */
    
    static void combineImageAction(StatusType*);
    static void combineSpectraAction(StatusType*);
    
    Ron's avatar
    Ron committed
    /* static void flxCalibAction(StatusType*); */
    /* static void genCalibAction(StatusType*); */
    
    Ron's avatar
    Ron committed
    static void find2dfFibresAction(StatusType*);
    
    Ron's avatar
    Ron committed
    static void plotAction(StatusType*);
    static void reduceArcAction(StatusType*);
    static void reduceBiasAction(StatusType*);
    static void reduceFFlatAction(StatusType*);
    static void reduceLFlatAction(StatusType*);
    static void reduceObjAction(StatusType*);
    static void reduceSkyAction(StatusType*);
    static void spliceAction(StatusType*);
    
    static void exitAction(StatusType*);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    Ron's avatar
    Ron committed
    
    int main(int argc,char** argv)
    /*
    
    Ron's avatar
    Ron committed
     * Execution of drexec DRAMA task begins here.
    
    Ron's avatar
    Ron committed
     *
    
    Ron's avatar
    Ron committed
     * This task acts as an action server for 2dfdr. drcontrol acts as the client
     * DRAMA task sending this task requests for 2dfdr processing.
    
    Ron's avatar
    Ron committed
     */
    
    JAB's avatar
    JAB committed
    {
    
        StatusType status = DITS__OK;
        char taskName[40];
    
    
    Ron's avatar
    Ron committed
        /* this task executes following DRAMA actions */
    
    Ron's avatar
    Ron committed
        DitsActionDetailsType actions[] = {
    
    Ron's avatar
    Ron committed
    	{ combineImageAction,  0,0,0,0,0,"COMBINE_IMAGE"},
    	{ combineSpectraAction,0,0,0,0,0,"COMBINE_SPECTRA"},
    
    Ron's avatar
    Ron committed
    /*	{ flxCalibAction,      0,0,0,0,0,"FLX_CALIB"}, */
    /*	{ genCalibAction,      0,0,0,0,0,"GEN_CALIB"}, */
    
    Ron's avatar
    Ron committed
    	{ find2dfFibresAction, 0,0,0,0,0,"GFIBPOS"},
    	{ plotAction,          0,0,0,0,0,"PLOT"},
    	{ reduceArcAction,     0,0,0,0,0,"REDUCE_ARC"},
    	{ reduceBiasAction,    0,0,0,0,0,"REDUCE_BIAS"},
    	{ reduceFFlatAction,   0,0,0,0,0,"REDUCE_FFLAT"},
    	{ reduceLFlatAction,   0,0,0,0,0,"REDUCE_LFLAT"},
    	{ reduceObjAction,     0,0,0,0,0,"REDUCE_OBJECT"},
    	{ reduceSkyAction,     0,0,0,0,0,"REDUCE_SKY"},
    	{ spliceAction,        0,0,0,0,0,"SPLICE"},
    	{ exitAction,          0,0,0,0,0,"EXIT"}
    
    Ron's avatar
    Ron committed
        };
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* The task name is normally given in argv[1]. Multiple copies of the
           task can  be started using different task names. A default name is
           used if one is not given. */
        strcpy(taskName,(argc > 1) ? argv[1] : "DREXEC");
     
    
    Ron's avatar
    Ron committed
        /* initialise DRAMA
           DITS_M_NOEXHAND => we will install exit handler */
        DitsAppInit(taskName,300000,DITS_M_NOEXHAND,0,&status);
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* define supported actions */
        DitsPutActions(DitsNumber(actions),actions,&status);  
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* enter DRAMA main loop
           This returns when action returns DITS_REQ_EXIT */
        DitsMainLoop(&status);
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
         /* here returned from DRAMA main loop, shutdown DRAMA and exit */
    
    Ron's avatar
    Ron committed
        return DitsStop(taskName,&status);
    
    JAB's avatar
    JAB committed
    }
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    Ron's avatar
    Ron committed
    void combineImageAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    
    Ron's avatar
    Ron committed
     * Handler for "COMBINE_IMAGE" DRAMA action.
    
    JAB's avatar
    JAB committed
    {
    
    Ron's avatar
    Ron committed
        DitsArgType args;
    
    
    Ron's avatar
    Ron committed
        if (*pStatus != DITS__OK) return;
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
    
    Ron's avatar
    Ron committed
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT and COMBINE_IMAGE() */
        tdfio_init_();
        combine_image_(&args,pStatus);
        
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    
    Ron's avatar
    Ron committed
    }
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    Ron's avatar
    Ron committed
    void combineSpectraAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    
    Ron's avatar
    Ron committed
     * Handler for "COMBINE_SPECTRA" DRAMA action.
    
    JAB's avatar
    JAB committed
    {
    
    Ron's avatar
    Ron committed
        DitsArgType args;
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        if (*pStatus != DITS__OK) return;
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
        args = DitsGetArgument();
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and COMBINE_SPECTRA() */
        tdfio_init_();
        combine_spectra_(&args,pStatus);
    
    Ron's avatar
    Ron committed
        
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    
    Ron's avatar
    Ron committed
    }
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    void flxCalibAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    
    Ron's avatar
    Ron committed
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "FLX_CALIB" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    
    JAB's avatar
    JAB committed
    {
    
    Ron's avatar
    Ron committed
        DitsArgType args;
    /*    SdsIdType localArgs; */
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        if (*pStatus != DITS__OK) return;
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
        args = DitsGetArgument();
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
    /*    SdsCopy(args,&localArgs,pStatus); */
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and ???() */
        tdfio_init_();
    /*    ???_(&args,pStatus); */
        
    /*    SdsDelete(localArgs,pStatus); */
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    
    JAB's avatar
    JAB committed
    }
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    void genCalibAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    
    Ron's avatar
    Ron committed
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "GEN_CALIB" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
    
    Ron's avatar
    Ron committed
        DitsArgType args;
    /*    SdsIdType localArgs; */
    
    
    Ron's avatar
    Ron committed
        if (*pStatus != DITS__OK) return;
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    /*    SdsCopy(args,&localArgs,pStatus); */
    
        /* call Fortran TDFIO_INIT() and ???() */
        tdfio_init_();
    /*    ???_(&args,pStatus); */
    
    Ron's avatar
    Ron committed
    /*    SdsDelete(localArgs,pStatus); */
    
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    
    Ron's avatar
    Ron committed
    }
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    void find2dfFibresAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    
    Ron's avatar
    Ron committed
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "GFIBPOS" (find 2df fibre positions) DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    
    JAB's avatar
    JAB committed
    {
    
    Ron's avatar
    Ron committed
        DitsArgType args;
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        if (*pStatus != DITS__OK) return;
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
        args = DitsGetArgument();
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and CMFIM_GFIBPOS() */
        tdfio_init_();
        cmfim_gfibpos_(&args,pStatus);
        
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    
    JAB's avatar
    JAB committed
    }
    
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
    /*---------------------------------------------------------------------------*/
    
    JAB's avatar
    JAB committed
    
    
    Ron's avatar
    Ron committed
    void plotAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "PLOT" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and PLOT() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        plot_file_(&args,pStatus);
    
    Ron's avatar
    Ron committed
        
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceArcAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_ARC" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
    Ron's avatar
    Ron committed
        SdsIdType localArgs;
    
    Ron's avatar
    Ron committed
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* make copy so it can be changed (external SDS -> internal) */
        SdsCopy(args,&localArgs,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and REDUCE_ARC() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_arc_(&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
        
    
    Ron's avatar
    Ron committed
        /* delete local SDS copy */
        SdsDelete(localArgs,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceBiasAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_BIAS" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and REDUCE_BIAS() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_bias_(&args,pStatus);
    
    Ron's avatar
    Ron committed
        
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceFFlatAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_FFLAT" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
    Ron's avatar
    Ron committed
        SdsIdType localArgs;
    
    Ron's avatar
    Ron committed
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* make copy so it can be changed (external SDS -> internal) */
        SdsCopy(args,&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and REDUCE_FFLAT() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_fflat_(&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
        /* delete local SDS copy */
        SdsDelete(localArgs,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceLFlatAction(
    
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_LFLAT" DRAMA action.
    
     */
    {
        DitsArgType args;
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
        args = DitsGetArgument();
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and REDUCE_LFLAT() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_lflat_(&args,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceObjAction(
    
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_OBJECT" DRAMA action.
    
     */
    {
        DitsArgType args;
    
    Ron's avatar
    Ron committed
        SdsIdType localArgs;
    
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
        args = DitsGetArgument();
    
    
    Ron's avatar
    Ron committed
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* make copy so it can be changed (external SDS -> internal) */
        SdsCopy(args,&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and REDUCE_OBJECT() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_object_(&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
        
    
    Ron's avatar
    Ron committed
        /* delete local SDS copy */
        SdsDelete(localArgs,pStatus);
    
    Ron's avatar
    Ron committed
    
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void reduceSkyAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "REDUCE_SKY" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
    Ron's avatar
    Ron committed
        SdsIdType localArgs;
    
    Ron's avatar
    Ron committed
    
        if (*pStatus != DITS__OK) return;
    
    
    Ron's avatar
    Ron committed
        /* get our SDS argument structure */
    
    Ron's avatar
    Ron committed
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* make copy so it can be changed (external SDS -> internal) */
        SdsCopy(args,&localArgs,pStatus);
    
        /* call Fortran TDFIO_INIT() and REDUCE_SKY() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        reduce_sky_(&localArgs,pStatus);
    
    Ron's avatar
    Ron committed
        
    
    Ron's avatar
    Ron committed
        /* delete local SDS copy */
        SdsDelete(localArgs,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void spliceAction(
    
    Ron's avatar
    Ron committed
        StatusType* pStatus)
    /*
    
    Ron's avatar
    Ron committed
     * Handler for "SPLICE" DRAMA action.
    
    Ron's avatar
    Ron committed
     */
    {
        DitsArgType args;
    
        if (*pStatus != DITS__OK) return;
    
        /* get our SDS argument structure */
        args = DitsGetArgument();
    
        /* for debug print our argument structure on stdout */
        SdsList(args,pStatus);
    
    
    Ron's avatar
    Ron committed
        /* call Fortran TDFIO_INIT() and SPLICE_AAOMEGA() */
    
    Ron's avatar
    Ron committed
        tdfio_init_();
    
    Ron's avatar
    Ron committed
        splice_aaomega_(&args,pStatus);
    
    Ron's avatar
    Ron committed
        
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_END,pStatus);
    }
    
    /*---------------------------------------------------------------------------*/
    
    
    Ron's avatar
    Ron committed
    void exitAction(
    
    Ron's avatar
    Ron committed
        StatusType *pStatus)
    
    Ron's avatar
    Ron committed
    /*
     * Handler for "EXIT" DRAMA action.
     */
    
    JAB's avatar
    JAB committed
    {
    
    Ron's avatar
    Ron committed
        /* show malloc'ed blocks accounting */
        psx_show_();
    
    
    Ron's avatar
    Ron committed
        DitsPutRequest(DITS_REQ_EXIT,pStatus);
    
    JAB's avatar
    JAB committed
    }