
[calls to prep_dynamo and dynamo from advance.F, inside time loop]

!
      call timer(time0_dynamo,time1_dynamo,'DYNAMO',0,0)
      ...
! 
        call prep_dynamo(
     |    tn     (levd0,lond0,latd0,itp),
     |    un     (levd0,lond0,latd0,itp),
     |    vn     (levd0,lond0,latd0,itp),
     |    w      (levd0,lond0,latd0,itp),
     |    z      (levd0,lond0,latd0,itp),
     |    barm   (levd0,lond0,latd0,itp),
     |    ped    (levd0,lond0,latd0),     ! from lamdas.F
     |    hall   (levd0,lond0,latd0),     ! from lamdas.F
     |    1,nlevp1,lon0,lon1,lat0,lat1)
        if (debug) write(6,"('advance after prep_dynamo')")
        if (mytid==0) call dynamo
        if (debug) write(6,"('advance after dynamo')")
      endif
!
! End timing for dynamo and step (before i/o):
      call timer(time0_dynamo,time1_dynamo,'DYNAMO',1,0)
      if (timing%level >= 2.and.time2print(nstep,istep))
     |  write(6,"('Time in DYNAMO =       ',
     |    f12.2,' Advance: step ',i5)") time1_dynamo,istep
!
! Update slave tasks with new phim3d from the dynamo. Make this call
! after timing, so that timing will show the difference between master
! and slave tasks as a consequence of the serial dynamo. (slaves will
! be blocked here until the master is done with the dynamo)
!
#ifdef MPI
      if (idynamo > 0) call mp_updatephi
#endif
