How to use gameobject that survived using awake?

I am using awake function to survive a gameobject when changing scene(another level of my game).Now how can I use the variable stored with that game object?
I am using

var obja : GameObject = GameObject.Find("Score");
function Score()
{
 score=obja.GetComponent(CalcScore).score+currentscore;
}

where currentscore is score of current level .
But it gives error “The variable obja of ‘Script’ has not been assigned”, but I can manually assign the gameobject score to the script at runtime.And then it can calculate score properly.

I can't really say what's wrong from the code excerpt you wrote, but I suggest a test to figure out what to fix:

create a local CalcScore cache variable, and ASSIGN a value to 'score'
    localcalcscore : CalcScore = obja.GetComponent(CalcScore);
    localcalcscore.score = 999;
    score = localcalcscore.score+currentscore;

if this raises an error, there's an object referencing issue (the object "Score" perhaps not really alive from the other scene) in the absence of errors, it means that CalcScore.score is really not initialized... so you probably aren't coming from the real scene where "Score" gets created.

Singletons are basically single-instance variables and classes, that don't need be instantiated with a gameobject and that exist project-wide.

They could be beneficial in your case. c# example:

using UnityEngine;
using System.Collections;

//doesn't derive from monobehavior
public static class mystaticclass {
  public static float globalscore = 0;
}

then you can access the static value with a simple

mystaticclass.globalscore = 999;