New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 3168 for branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90 – NEMO

Ignore:
Timestamp:
2011-11-22T10:48:38+01:00 (13 years ago)
Author:
cbricaud
Message:

add timing, change dynamical allocation and correct small bugs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90

    r2977 r3168  
    4747#endif 
    4848   USE lib_mpp         ! MPP library 
     49   USE timing          ! preformance summary 
     50   USE wrk_nemo_2      ! working array 
    4951 
    5052   IMPLICIT NONE 
     
    114116      !! ** Method  :  use iom_put 
    115117      !!---------------------------------------------------------------------- 
    116       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    117       USE wrk_nemo, ONLY: z3d => wrk_3d_1 
    118       USE wrk_nemo, ONLY: z2d => wrk_2d_1 
    119118      !! 
    120119      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
     
    122121      INTEGER                      ::   ji, jj, jk              ! dummy loop indices 
    123122      REAL(wp)                     ::   zztmp, zztmpx, zztmpy   !  
     123      !! 
     124      REAL(wp), POINTER, DIMENSION(:,:)   :: z2d       ! 2D workspace 
     125      REAL(wp), POINTER, DIMENSION(:,:,:) :: z3d      ! 3D workspace 
    124126      !!---------------------------------------------------------------------- 
    125127      !  
    126       IF(  wrk_in_use(3, 1) .OR. wrk_in_use(2, 1) ) THEN 
    127          CALL ctl_stop('dia_wri: ERROR - requested 2D workspace unavailable.')  ;  RETURN 
    128       END IF 
     128      IF( nn_timing == 1 )   CALL timing_start('dia_wri') 
     129      !  
     130      CALL wrk_alloc( jpi , jpj      , z2d ) 
     131      CALL wrk_alloc( jpi , jpj, jpk , z3d ) 
    129132      ! 
    130133      ! Output the initial state and forcings 
     
    197200      ENDIF 
    198201      ! 
    199       IF( wrk_not_released(3, 1) .OR. wrk_not_released(2, 1) ) THEN 
    200          CALL ctl_stop('dia_wri: ERROR - failed to release 2D workspace.') 
    201          RETURN 
    202       END IF 
     202      CALL wrk_dealloc( jpi , jpj      , z2d ) 
     203      CALL wrk_dealloc( jpi , jpj, jpk , z3d ) 
     204      ! 
     205      IF( nn_timing == 1 )   CALL timing_stop('dia_wri') 
    203206      ! 
    204207   END SUBROUTINE dia_wri 
     
    221224      !!      Each nwrite time step, output the instantaneous or mean fields 
    222225      !!---------------------------------------------------------------------- 
    223       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    224       USE wrk_nemo, ONLY: zw2d => wrk_2d_1 
    225226      !! 
    226227      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index 
     
    231232      INTEGER  ::   iimi, iima, ipk, it, itmod, ijmi, ijma   ! local integers 
    232233      REAL(wp) ::   zsto, zout, zmax, zjulian, zdt           ! local scalars 
     234      !! 
     235      REAL(wp), POINTER, DIMENSION(:,:)   :: zw2d       ! 2D workspace 
    233236      !!---------------------------------------------------------------------- 
    234       ! 
    235       IF( wrk_in_use(2, 1))THEN 
    236          CALL ctl_stop('dia_wri: ERROR - requested 2D workspace unavailable.') 
    237          RETURN 
    238       END IF 
     237      !  
     238      IF( nn_timing == 1 )   CALL timing_start('dia_wri') 
     239      ! 
     240      CALL wrk_alloc( jpi , jpj      , zw2d ) 
    239241      ! 
    240242      ! Output the initial state and forcings 
     
    605607      ENDIF 
    606608      ! 
    607       IF( wrk_not_released(2, 1))THEN 
    608          CALL ctl_stop('dia_wri: ERROR - failed to release 2D workspace.') 
    609          RETURN 
    610       END IF 
     609      CALL wrk_dealloc( jpi , jpj      , zw2d ) 
     610      ! 
     611      IF( nn_timing == 1 )   CALL timing_stop('dia_wri') 
    611612      ! 
    612613   END SUBROUTINE dia_wri 
     
    637638      REAL(wp) ::   zsto, zout, zmax, zjulian, zdt 
    638639      !!---------------------------------------------------------------------- 
     640      !  
     641      IF( nn_timing == 1 )   CALL timing_start('dia_wri_state') 
    639642 
    640643      ! 0. Initialisation 
     
    732735      ENDIF 
    733736#endif 
     737        
     738      IF( nn_timing == 1 )   CALL timing_stop('dia_wri_state') 
     739      !  
    734740 
    735741   END SUBROUTINE dia_wri_state 
Note: See TracChangeset for help on using the changeset viewer.