- Timestamp:
- 2011-11-22T10:48:38+01:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DIA/diaar5.F90
r2977 r3168 19 19 USE lib_mpp ! distribued memory computing library 20 20 USE iom ! I/O manager library 21 USE timing ! preformance summary 22 USE wrk_nemo_2 ! working arrays 21 23 22 24 IMPLICIT NONE … … 65 67 !! ** Purpose : compute and output some AR5 diagnostics 66 68 !!---------------------------------------------------------------------- 67 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released68 USE wrk_nemo, ONLY: zarea_ssh => wrk_2d_1 , zbotpres => wrk_2d_2 ! 2D workspace69 USE wrk_nemo, ONLY: zrhd => wrk_3d_1 , zrhop => wrk_3d_2 ! 3D -70 USE wrk_nemo, ONLY: ztsn => wrk_4d_1 ! 4D -71 69 ! 72 70 INTEGER, INTENT( in ) :: kt ! ocean time-step index … … 74 72 INTEGER :: ji, jj, jk ! dummy loop arguments 75 73 REAL(wp) :: zvolssh, zvol, zssh_steric, zztmp, zarho, ztemp, zsal, zmass 74 ! 75 REAL(wp), POINTER, DIMENSION(:,:) :: zarea_ssh , zbotpres ! 2D workspace 76 REAL(wp), POINTER, DIMENSION(:,:,:) :: zrhd , zrhop ! 3D workspace 77 REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztsn ! 4D workspace 76 78 !!-------------------------------------------------------------------- 77 78 IF( wrk_in_use(2, 1,2) .OR. & 79 wrk_in_use(3, 1,2) .OR. & 80 wrk_in_use(4, 1) ) THEN 81 CALL ctl_stop('dia_ar5: requested workspace arrays unavailable') ; RETURN 82 ENDIF 79 IF( nn_timing == 1 ) CALL timing_start('dia_ar5') 80 81 CALL wrk_alloc( jpi , jpj , zarea_ssh , zbotpres ) 82 CALL wrk_alloc( jpi , jpj , jpk , zrhd , zrhop ) 83 CALL wrk_alloc( jpi , jpj , jpk , jpts , ztsn ) 83 84 84 85 CALL iom_put( 'cellthc', fse3t(:,:,:) ) … … 160 161 CALL iom_put( 'saltot' , zsal ) 161 162 ! 162 IF( wrk_not_released(2, 1,2) .OR. & 163 wrk_not_released(3, 1,2) .OR. & 164 wrk_not_released(4, 1) ) CALL ctl_stop('dia_ar5: failed to release workspace arrays') 163 CALL wrk_dealloc( jpi , jpj , zarea_ssh , zbotpres ) 164 CALL wrk_dealloc( jpi , jpj , jpk , zrhd , zrhop ) 165 CALL wrk_dealloc( jpi , jpj , jpk , jpts , ztsn ) 166 ! 167 IF( nn_timing == 1 ) CALL timing_stop('dia_ar5') 165 168 ! 166 169 END SUBROUTINE dia_ar5 … … 173 176 !! ** Purpose : initialization for AR5 diagnostic computation 174 177 !!---------------------------------------------------------------------- 175 USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released176 USE wrk_nemo, ONLY: wrk_4d_1 ! 4D workspace177 !178 178 INTEGER :: inum 179 179 INTEGER :: ik … … 183 183 !!---------------------------------------------------------------------- 184 184 ! 185 IF(wrk_in_use(4, 1) ) THEN 186 CALL ctl_stop('dia_ar5_init: requested workspace array unavailable.') ; RETURN 187 ENDIF 188 zsaldta => wrk_4d_1(:,:,:,1:2) 189 185 IF( nn_timing == 1 ) CALL timing_start('dia_ar5_init') 186 ! 187 CALL wrk_alloc( jpi , jpj , jpk, jpts, zsaldta ) 190 188 ! ! allocate dia_ar5 arrays 191 189 IF( dia_ar5_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'dia_ar5_init : unable to allocate arrays' ) … … 221 219 ENDIF 222 220 ! 223 IF( wrk_not_released(4, 1) ) CALL ctl_stop('dia_ar5_init: failed to release workspace array') 221 CALL wrk_dealloc( jpi , jpj , jpk, jpts, zsaldta ) 222 ! 223 IF( nn_timing == 1 ) CALL timing_stop('dia_ar5_init') 224 224 ! 225 225 END SUBROUTINE dia_ar5_init
Note: See TracChangeset
for help on using the changeset viewer.