/[MITgcm]/MITgcm_contrib/dgoldberg/code_cg3d_petsc/cg3d_petsc.F
ViewVC logotype

Diff of /MITgcm_contrib/dgoldberg/code_cg3d_petsc/cg3d_petsc.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by dgoldberg, Fri Jul 1 20:40:30 2016 UTC revision 1.3 by dgoldberg, Tue Jul 5 15:56:42 2016 UTC
# Line 101  C     LOCAL VARIABLES Line 101  C     LOCAL VARIABLES
101        cg3d_need2destroy_mat = .FALSE.        cg3d_need2destroy_mat = .FALSE.
102        ENDIF        ENDIF
103                
104    !      Print *, "GOT HERE CG3D", local_dofs,global_dofs,
105    !     & cg3d_dofs_cum_sum
106    
107  #ifdef ALLOW_USE_MPI  #ifdef ALLOW_USE_MPI
108    
# Line 112  C     LOCAL VARIABLES Line 114  C     LOCAL VARIABLES
114    
115        cg3d_dofs_cum_sum(0) = 0        cg3d_dofs_cum_sum(0) = 0
116    
117        DO i=1,nPx*nPy*MAX_CG3D_PETSC_CPUINVERT-1        DO i=0,nPx*nPy*MAX_CG3D_PETSC_CPUINVERT-1
118         IF (i.le.cg3d_petsc_cpuInVert) THEN  !       IF (i.le.cg3d_petsc_cpuInVert) THEN
119          global_dofs = global_dofs + cg3d_dofs_process (i)          global_dofs = global_dofs + cg3d_dofs_process (i)
120          if (i.ge.1) then          if (i.ge.1) then
121           cg3d_dofs_cum_sum(i) = cg3d_dofs_cum_sum(i-1)+           cg3d_dofs_cum_sum(i) = cg3d_dofs_cum_sum(i-1)+
122       &                     cg3d_dofs_process(i-1)       &                     cg3d_dofs_process(i-1)
123          endif          endif
124         ENDIF  !       ENDIF
125        ENDDO        ENDDO
126    
127        local_offset = cg3d_dofs_cum_sum(mpimywid)        local_offset = cg3d_dofs_cum_sum(mpimywid)
# Line 131  C     LOCAL VARIABLES Line 133  C     LOCAL VARIABLES
133        local_offset = 0        local_offset = 0
134    
135  #endif  #endif
136          Print *, "GOT HERE CG3D", local_dofs,global_dofs,
137         & cg3d_dofs_cum_sum
138    
139  !----------------------  !----------------------
140    
# Line 190  C     LOCAL VARIABLES Line 193  C     LOCAL VARIABLES
193        call VecAssemblyEnd(solution, ierr)        call VecAssemblyEnd(solution, ierr)
194    
195    
196    
197        if (cg3d_need2create_mat) then        if (cg3d_need2create_mat) then
198        CALL TIMER_START ('CG3D_PETSC_MATCREATE',myThid)        CALL TIMER_START ('CG3D_PETSC_MATCREATE',myThid)
199    
# Line 286  C     LOCAL VARIABLES Line 290  C     LOCAL VARIABLES
290             endif             endif
291             endif             endif
292    
293    
294             call matSetValues (matrix_petsc_cg3d, 1, dof_index, col_iter,             call matSetValues (matrix_petsc_cg3d, 1, dof_index, col_iter,
295       &                        indices_col,       &                        indices_col,
296       &                        mat_values,INSERT_VALUES,ierr)       &                        mat_values,INSERT_VALUES,ierr)
# Line 386  C     LOCAL VARIABLES Line 391  C     LOCAL VARIABLES
391        CALL TIMER_START ('CG3D_PETSC_SOLVE',myThid)        CALL TIMER_START ('CG3D_PETSC_SOLVE',myThid)
392    
393        call KSPSolve(ksp_cg3d, rhs, solution, ierr)        call KSPSolve(ksp_cg3d, rhs, solution, ierr)
394          
395    
396        CALL TIMER_STOP ('CG3D_PETSC_SOLVE',myThid)        CALL TIMER_STOP ('CG3D_PETSC_SOLVE',myThid)
397    
398        call KSPGetIterationNumber(ksp_cg3d,iters,ierr)        call KSPGetIterationNumber(ksp_cg3d,iters,ierr)
       print *, "GOT HERE CG3D PETSC SOLVE COMPLETE", iters  
399    
400        maxIter = iters        maxIter = iters
401    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.3

  ViewVC Help
Powered by ViewVC 1.1.22