PROGRAM drive_ocean C$$$ MAIN PROGRAM DOCUMENTATION BLOCK C C C MAIN PROGRAM: DRIVE_OCEAN C C PRGMMR: Biju Thomas, URI/GSO, DATE: 2012/10/01 C ABSTRACT: C USE Oc_cc, ONLY: MPI_COMM_Ocean USE setvars IMPLICIT NONE include 'mpif.h' INTEGER :: icoupling, ierr cc REAL :: xcen,ycen,timev character*15 filename LOGICAL :: ltau_cmp = .TRUE. LOGICAL :: success REAL, DIMENSION(im_global,jm_global) :: &xgrid_t,ygrid_t,xgrid_u,ygrid_u,xgrid_v,ygrid_v,fsm_g, &dum_g,dvm_g,tma,csx=0.0,csy=0.0,cdpx=0.0,cdpy=0.0, &wusurf_g=0.0,wvsurf_g=0.0,wtsurf_g=0.0,swrad_g=0.0, &dtaux_g=0.0,dtauy_g=0.0,mdpth_g=0.0,wbcond_g=0.0, &kpph=0.0, xstk_g=0.0, ystk_g=0.0 icoupling = 1 c! CALL oc_cmp_start CALL oc_init(im_global,jm_global) c! pom_comm=MPI_COMM_Ocean CALL initialize CALL ocm_atm(tma,csx,csy,cdpx,cdpy,success) CALL make_om_grid(xgrid_t,xgrid_u,xgrid_v, & ygrid_t,ygrid_u,ygrid_v) CALL make_om_msk(fsm_g, dum_g, dvm_g) c! IF (xgrid_t(1,1) .LT. 0.0) THEN CALL oc_sendgrids((xgrid_t+360.)*deg2rad,ygrid_t*deg2rad, & (xgrid_u+360.)*deg2rad,ygrid_u*deg2rad, & (xgrid_v+360.)*deg2rad,ygrid_v*deg2rad,2.*dti) ELSE CALL oc_sendgrids(xgrid_t*deg2rad,ygrid_t*deg2rad, & xgrid_u*deg2rad,ygrid_u*deg2rad, & xgrid_v*deg2rad,ygrid_v*deg2rad,2.*dti) ENDIF CALL oc_sendslm(fsm_g, dum_g, dvm_g) c! DO iint=1,iend ! IINT Loop begins c! IF(MOD(iint+1,2) .EQ. 0) THEN CALL oc_sendsst(tma) CALL oc_sendssc(csx, csy) CALL oc_senddpc(cdpx, cdpy) CALL oc_sendkpp(kpph) END IF c! IF(MOD(iint+1,2) .EQ. 0 ) THEN IF( my_task .EQ. 0) THEN CALL oc_recv_sbc(wtsurf_g,1./(rho_0*4200.)) CALL oc_recv_sbc(swrad_g,1./(rho_0*4200.)) CALL oc_recv_sbc(wusurf_g,1./rho_0) CALL oc_recv_sbc(wvsurf_g,1./rho_0) CALL oc_recv_dtau(dtaux_g, dtauy_g) CALL oc_recv_stkdft(xstk_g, ystk_g) CALL oc_recv_wbcond(wbcond_g) CALL oc_recv_mdpth(mdpth_g) ENDIF CALL mpi_barrier(pom_comm,ierr ) CALL MPI_BCAST(wusurf_g,im_global*jm_global,MPI_REAL,0, & pom_comm, ierr) CALL MPI_BCAST(wvsurf_g,im_global*jm_global,MPI_REAL,0, & pom_comm, ierr) CALL MPI_BCAST(wtsurf_g,im_global*jm_global,MPI_REAL,0, & pom_comm, ierr) CALL MPI_BCAST(swrad_g,im_global*jm_global,MPI_REAL,0, & pom_comm, ierr) CALL MPI_BCAST(dtaux_g,im_global*jm_global,MPI_REAL,0, & pom_comm, ierr) CALL MPI_BCAST(dtauy_g,im_global*jm_global,MPI_REAL,0, & pom_comm, ierr) CALL MPI_BCAST(mdpth_g,im_global*jm_global,MPI_REAL,0, & pom_comm, ierr) CALL MPI_BCAST(wbcond_g,im_global*jm_global,MPI_REAL,0, & pom_comm, ierr) CALL MPI_BCAST(xstk_g,im_global*jm_global,MPI_REAL,0, & pom_comm, ierr) CALL MPI_BCAST(ystk_g,im_global*jm_global,MPI_REAL,0, & pom_comm, ierr) ENDIF CALL atm_ocm(xgrid_t, ygrid_t,fsm_g,wusurf_g, wvsurf_g, wtsurf_g, & swrad_g, dtaux_g, dtauy_g, mdpth_g, wbcond_g, success) CALL advance(icoupling) CALL ocm_atm(tma,csx,csy,cdpx,cdpy,success) ENDDO ! IINT Loop Ends CALL finalize_mpi STOP END PROGRAM drive_ocean