C $Header: /home/ubuntu/mnt/e9_copy/MITgcm_contrib/ESMF/global_ocean.128x64x15/code/driver_run.F,v 1.1.1.1 2004/02/15 22:28:18 cnh Exp $ C $Name: $ #include "CPP_OPTIONS.h" CBOP C !ROUTINE: DRIVER_RUN C !INTERFACE: SUBROUTINE DRIVER_RUN( U myCurrentTime, myCurrentIter, U iLoop, I nTimeS, myThid) C !DESCRIPTION: \bv C *================================================================== C | SUBROUTINE driver_run C | o External driver control routine for MITgcm forward step C | execution phase. C *================================================================== C | C | DRIVER routines are used to control the MITgcm code from an external C | driver. This routine invokes the forward phase of code execution. C | The driver here is written for an ocean configuration and is designed C | for use with either an argument based call/return interface or with a C | messaging based "event loop" interface. C | C *================================================================== C \ev C !USES: IMPLICIT NONE C == Global variables == #include "SIZE.h" #include "EEPARAMS.h" #include "EESUPPORT.h" #include "PARAMS.h" C == Routine arguments == C myThid :: Thread number for this instance of the routine INTEGER myThid INTEGER myCurrentIter _RL myCurrentTime INTEGER nTimeS INTEGER iLoop C == Local variables == INTEGER i,j,bi,bj CHARACTER*(MAX_LEN_MBUF) msgBuf CHARACTER*13 fNam INTEGER iStep CEOP C myThid = 1 C myCurrentTime = startTime+startStep*deltaTClock C myCurrentIter = nIter0+startStep C myThid = 1 C nTimesteps = stopStep-startStep CALL MONITOR( myCurrentIter, myCurrentTime, myThid ) DO iStep = 1, nTimeS CALL FORWARD_STEP_EXECUTE( iLoop, myCurrentTime, & myCurrentIter, myThid ) iLoop = iLoop+1 CALL FORWARD_STEP_SETUP( iLoop, myCurrentTime, & myCurrentIter, myThid ) ENDDO CALL FORWARD_STEP_EXECUTE( iLoop, myCurrentTime, & myCurrentIter, myThid ) iLoop = iLoop+1 CALL FORWARD_STEP_SETUP( iLoop, myCurrentTime, & myCurrentIter, myThid ) RETURN END