Changeset 3294 for trunk/NEMOGCM/NEMO/OPA_SRC/SOL
- Timestamp:
- 2012-01-28T17:44:18+01:00 (12 years ago)
- Location:
- trunk/NEMOGCM/NEMO/OPA_SRC/SOL
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMOGCM/NEMO/OPA_SRC/SOL/solmat.F90
r2715 r3294 31 31 USE lib_mpp ! distributed memory computing 32 32 USE in_out_manager ! I/O manager 33 USE timing ! timing 33 34 34 35 IMPLICIT NONE … … 64 65 REAL(wp) :: z2dt, zcoef 65 66 !!---------------------------------------------------------------------- 66 67 ! 68 IF( nn_timing == 1 ) CALL timing_start('sol_mat') 69 ! 67 70 68 71 ! 1. Construction of the matrix … … 297 300 gccd (:,:) = 0.e0 298 301 ! 302 IF( nn_timing == 1 ) CALL timing_stop('sol_mat') 303 ! 299 304 END SUBROUTINE sol_mat 300 305 -
trunk/NEMOGCM/NEMO/OPA_SRC/SOL/solpcg.F90
r2715 r3294 14 14 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 15 15 USE in_out_manager ! I/O manager 16 USE lib_fortran 16 USE lib_fortran ! Fortran routines library 17 USE wrk_nemo ! Memory allocation 18 USE timing ! Timing 17 19 18 20 IMPLICIT NONE … … 83 85 !! ! 08-01 (R. Benshila) mpp optimization 84 86 !!---------------------------------------------------------------------- 85 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released86 USE wrk_nemo, ONLY: zgcr => wrk_2d_187 87 !! 88 88 INTEGER, INTENT(inout) :: kindic ! solver indicator, < 0 if the conver- … … 93 93 REAL(wp) :: zgcad ! temporary scalars 94 94 REAL(wp), DIMENSION(2) :: zsum 95 REAL(wp), POINTER, DIMENSION(:,:) :: zgcr 95 96 !!---------------------------------------------------------------------- 96 97 IF( wrk_in_use(2, 1) )THEN98 CALL ctl_stop('sol_pcg: requested workspace array is unavailable') ; RETURN99 ENDIF100 97 ! 98 IF( nn_timing == 1 ) CALL timing_start('sol_pcg') 99 ! 100 CALL wrk_alloc( jpi, jpj, zgcr ) 101 ! 101 102 ! Initialization of the algorithm with standard PCG 102 103 ! ------------------------------------------------- … … 209 210 CALL lbc_lnk( gcx, c_solver_pt, 1. ) ! Output in gcx with lateral b.c. applied 210 211 ! 211 IF( wrk_not_released(2, 1) ) CALL ctl_stop('sol_pcg: failed to release workspace array') 212 CALL wrk_dealloc( jpi, jpj, zgcr ) 213 ! 214 IF( nn_timing == 1 ) CALL timing_stop('sol_pcg') 212 215 ! 213 216 END SUBROUTINE sol_pcg -
trunk/NEMOGCM/NEMO/OPA_SRC/SOL/solsor.F90
r2715 r3294 22 22 USE lib_mpp ! distributed memory computing 23 23 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 24 USE lib_fortran 24 USE lib_fortran ! Fortran routines library 25 USE wrk_nemo ! Memory allocation 26 USE timing ! Timing 25 27 26 28 IMPLICIT NONE … … 57 59 !! Beare and Stevens 1997 Ann. Geophysicae 15, 1369-1377 58 60 !!---------------------------------------------------------------------- 59 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released60 USE wrk_nemo, ONLY: ztab => wrk_2d_1 ! 2D workspace61 61 !! 62 62 INTEGER, INTENT(inout) :: kindic ! solver indicator, < 0 if the convergence is not reached: … … 66 66 INTEGER :: ishift, icount, ijmppodd, ijmppeven, ijpr2d ! local integers 67 67 REAL(wp) :: ztmp, zres, zres2 ! local scalars 68 REAL(wp), POINTER, DIMENSION(:,:) :: ztab ! 2D workspace 68 69 !!---------------------------------------------------------------------- 69 70 IF( wrk_in_use(2, 1) )THEN71 CALL ctl_stop('sol_sor: requested workspace array is unavailable') ; RETURN72 ENDIF73 70 ! 71 IF( nn_timing == 1 ) CALL timing_start('sol_sor') 72 ! 73 CALL wrk_alloc( jpi, jpj, ztab ) 74 ! 74 75 ijmppeven = MOD( nimpp+njmpp+jpr2di+jpr2dj , 2 ) 75 76 ijmppodd = MOD( nimpp+njmpp+jpr2di+jpr2dj+1 , 2 ) … … 167 168 ! ------------- 168 169 CALL lbc_lnk_e( gcx, c_solver_pt, 1. ) ! boundary conditions 169 ! 170 IF( wrk_not_released(2, 1) ) CALL ctl_stop('sol_sor: failed to release workspace array') 170 ! 171 CALL wrk_dealloc( jpi, jpj, ztab ) 172 ! 173 IF( nn_timing == 1 ) CALL timing_stop('sol_sor') 171 174 ! 172 175 END SUBROUTINE sol_sor -
trunk/NEMOGCM/NEMO/OPA_SRC/SOL/solver.F90
r2715 r3294 23 23 USE dynspg_oce ! choice/control of key cpp for surface pressure gradient 24 24 USE solmat ! matrix of the solver 25 USE obc_oce ! Lateral open boundary condition26 25 USE in_out_manager ! I/O manager 27 26 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 28 27 USE lib_mpp ! MPP library 28 USE timing ! timing 29 29 30 30 IMPLICIT NONE … … 54 54 NAMELIST/namsol/ nn_solv, nn_sol_arp, nn_nmin, nn_nmax, nn_nmod, rn_eps, rn_resmax, rn_sor 55 55 !!---------------------------------------------------------------------- 56 ! 57 IF( nn_timing == 1 ) CALL timing_start('solver_init') 58 ! 56 59 57 60 IF(lwp) THEN !* open elliptic solver statistics file (only on the printing processors) … … 111 114 CALL sol_mat( kt ) !* Construction of the elliptic system matrix 112 115 ! 116 IF( nn_timing == 1 ) CALL timing_stop('solver_init') 117 ! 113 118 END SUBROUTINE solver_init 114 119 #endif
Note: See TracChangeset
for help on using the changeset viewer.