private void submitGridlet(int id, long submitTime, int runTime, int numProc)
    {
        // create the gridlet
        int len = runTime * rating_;      // calculate a job length for each PE
        Gridlet gl = new Gridlet(id, len, size_, size_, GridSim.isTraceEnabled());
        gl.setUserID( super.get_id() );   // set the owner ID
        gl.setNumPE(numProc);             // set the requested num of proc

        // printing to inform user
        if (gridletID_ == 1 || gridletID_ % INTERVAL == 0)
        {
            System.out.println(super.get_name() + ": Submitting Gridlets to " +
                    resName_ + " ...");
        }

        // check the submit time
        if (submitTime < 0) {
            submitTime = 0;
        }

        gridletID_++;   // increment the counter

        // submit a gridlet to resource
        super.send(super.output, submitTime, GridSimTags.GRIDLET_SUBMIT,
                new IO_data(gl, gl.getGridletFileSize(), resID_) );
    }