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 3182 for branches/2011/dev_NEMO_MERGE_2011/NEMOGCM – NEMO

Ignore:
Timestamp:
2011-11-25T12:27:22+01:00 (12 years ago)
Author:
davestorkey
Message:

Change dynamic allocation and add timing to BDY module.

Location:
branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90

    r3122 r3182  
    1919   !!    bdy_dta_init   : initialise arrays etc for reading of external data 
    2020   !!---------------------------------------------------------------------- 
     21   USE wrk_nemo_2      ! Memory Allocation 
     22   USE timing          ! Timing 
    2123   USE oce             ! ocean dynamics and tracers 
    2224   USE dom_oce         ! ocean space and time domain 
     
    6466      !!                 
    6567      !!---------------------------------------------------------------------- 
    66       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    67       USE wrk_nemo, ONLY: wrk_2d_22, wrk_2d_23   ! 2D workspace 
    6868      !! 
    6969      INTEGER, INTENT( in )           ::   kt    ! ocean time-step index  
     
    8181      !! 
    8282      !!--------------------------------------------------------------------------- 
    83  
    84       IF(wrk_in_use(2, 22,23) ) THEN 
    85          CALL ctl_stop('bdy_dta: ERROR: requested workspace arrays are unavailable.')   ;   RETURN 
    86       END IF 
     83      !! 
     84      IF( nn_timing == 1 ) CALL timing_start('bdy_dta') 
    8785 
    8886      ! Initialise data arrays once for all from initial conditions where required 
     
    9290         ! Calculate depth-mean currents 
    9391         !----------------------------- 
    94          pu2d => wrk_2d_22 
    95          pv2d => wrk_2d_23 
     92         CALL wrk_alloc(jpi,jpj,pu2d,pv2d)  
    9693 
    9794         pu2d(:,:) = 0.e0 
     
    196193 
    197194         ENDDO ! ib_bdy 
     195 
     196         CALL wrk_dealloc(jpi,jpj,pu2d,pv2d)  
    198197 
    199198      ENDIF ! kt .eq. nit000 
     
    281280      END DO  ! ib_bdy 
    282281 
    283       IF(wrk_not_released(2, 22,23) )    CALL ctl_stop('bdy_dta: ERROR: failed to release workspace arrays.') 
     282      IF( nn_timing == 1 ) CALL timing_stop('bdy_dta') 
    284283 
    285284      END SUBROUTINE bdy_dta 
     
    322321      NAMELIST/nambdy_dta/ ln_full_vel 
    323322      !!--------------------------------------------------------------------------- 
     323 
     324      IF( nn_timing == 1 ) CALL timing_start('bdy_dta_init') 
    324325 
    325326      ! Set nn_dta 
     
    671672      ENDDO ! ib_bdy  
    672673 
     674      IF( nn_timing == 1 ) CALL timing_stop('bdy_dta_init') 
     675 
    673676      END SUBROUTINE bdy_dta_init 
    674677 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn.F90

    r3116 r3182  
    1818   !!   bdy_dyn3d_frs    : apply Flow Relaxation Scheme 
    1919   !!---------------------------------------------------------------------- 
     20   USE wrk_nemo_2      ! Memory Allocation 
     21   USE timing          ! Timing 
    2022   USE oce             ! ocean dynamics and tracers  
    2123   USE dom_oce         ! ocean space and time domain 
     
    4850      !! 
    4951      !!---------------------------------------------------------------------- 
    50       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    51       USE wrk_nemo, ONLY: wrk_2d_7, wrk_2d_8      ! 2D workspace 
    5252      !! 
    5353      INTEGER, INTENT( in )           :: kt               ! Main time step counter 
     
    5858      !! 
    5959 
    60       IF(wrk_in_use(2, 7,8) ) THEN 
    61          CALL ctl_stop('bdy_dyn: ERROR: requested workspace arrays are unavailable.')   ;   RETURN 
    62       END IF 
     60      IF( nn_timing == 1 ) CALL timing_start('bdy_dyn') 
    6361 
    6462      ll_dyn2d = .true. 
     
    7674      phur => hur 
    7775      phvr => hvr 
    78       pu2d => wrk_2d_7 
    79       pv2d => wrk_2d_8 
     76      CALL wrk_alloc(jpi,jpj,pu2d,pv2d)  
    8077 
    8178      !------------------------------------------------------- 
     
    114111      END DO 
    115112 
    116       IF(wrk_not_released(2, 7,8) )    CALL ctl_stop('bdy_dyn: ERROR: failed to release workspace arrays.') 
     113      CALL wrk_dealloc(jpi,jpj,pu2d,pv2d)  
     114 
     115      IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn') 
    117116 
    118117   END SUBROUTINE bdy_dyn 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn2d.F90

    r3117 r3182  
    1818   !!   bdy_dyn2d_fla    : Apply Flather condition 
    1919   !!---------------------------------------------------------------------- 
     20   USE timing          ! Timing 
    2021   USE oce             ! ocean dynamics and tracers  
    2122   USE dom_oce         ! ocean space and time domain 
     
    8485      !!---------------------------------------------------------------------- 
    8586      ! 
     87      IF( nn_timing == 1 ) CALL timing_start('bdy_dyn2d_frs') 
    8688      ! 
    8789      igrd = 2                      ! Relaxation of zonal velocity 
     
    103105      CALL lbc_lnk( pv2d, 'V', -1. )   ! Boundary points should be updated 
    104106      ! 
     107      IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn2d_frs') 
     108      ! 
    105109 
    106110   END SUBROUTINE bdy_dyn2d_frs 
     
    134138      REAL(wp) ::   zforc                            ! temporary scalar 
    135139      !!---------------------------------------------------------------------- 
     140 
     141      IF( nn_timing == 1 ) CALL timing_start('bdy_dyn2d_fla') 
    136142 
    137143      ! ---------------------------------! 
     
    179185      CALL lbc_lnk( pv2d, 'V', -1. )   ! 
    180186      ! 
     187      IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn2d_fla') 
    181188      ! 
    182189   END SUBROUTINE bdy_dyn2d_fla 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdydyn3d.F90

    r3117 r3182  
    11MODULE bdydyn3d 
    22   !!====================================================================== 
    3    !!                       ***  MODULE  bdydyn  *** 
     3   !!                       ***  MODULE  bdydyn3d  *** 
    44   !! Unstructured Open Boundary Cond. :   Flow relaxation scheme on velocities 
    55   !!====================================================================== 
     
    1818   !!   bdy_dyn3d_frs    : apply Flow Relaxation Scheme 
    1919   !!---------------------------------------------------------------------- 
     20   USE timing          ! Timing 
    2021   USE oce             ! ocean dynamics and tracers  
    2122   USE dom_oce         ! ocean space and time domain 
     
    8687      !!---------------------------------------------------------------------- 
    8788      ! 
     89      IF( nn_timing == 1 ) CALL timing_start('bdy_dyn3d_frs') 
    8890      ! 
    8991      igrd = 2                      ! Relaxation of zonal velocity 
     
    110112      IF( kt .eq. nit000 ) CLOSE( unit = 102 ) 
    111113 
     114      IF( nn_timing == 1 ) CALL timing_stop('bdy_dyn3d_frs') 
     115 
    112116   END SUBROUTINE bdy_dyn3d_frs 
    113117 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdyice_lim2.F90

    r3117 r3182  
    1414   !!   bdy_ice_frs        : Application of Flow Relaxation Scheme 
    1515   !!---------------------------------------------------------------------- 
     16   USE timing          ! Timing 
    1617   USE oce             ! ocean dynamics and tracers variables 
    1718   USE ice_2           ! LIM_2 ice variables 
     
    7778      !!------------------------------------------------------------------------------ 
    7879      ! 
     80      IF( nn_timing == 1 ) CALL timing_start('bdy_ice_frs') 
     81      ! 
    7982      jgrd = 1      ! Everything is at T-points here 
    8083      ! 
     
    9396      CALL lbc_lnk( hicif, 'T', 1. )   ;   CALL lbc_lnk( hsnif, 'T', 1. ) 
    9497      !       
     98      IF( nn_timing == 1 ) CALL timing_stop('bdy_ice_frs') 
     99      ! 
    95100   END SUBROUTINE bdy_ice_frs 
    96101#else 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdyini.F90

    r3116 r3182  
    1919   !!   bdy_init       : Initialization of unstructured open boundaries 
    2020   !!---------------------------------------------------------------------- 
     21   USE timing          ! Timing 
    2122   USE oce             ! ocean dynamics and tracers variables 
    2223   USE dom_oce         ! ocean space and time domain 
     
    9495      !!---------------------------------------------------------------------- 
    9596 
     97      IF( nn_timing == 1 ) CALL timing_start('bdy_init') 
     98 
    9699      IF( bdy_oce_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'bdy_init : unable to allocate oce arrays' ) 
    97100 
     
    806809      DEALLOCATE(nbidta, nbjdta, nbrdta) 
    807810 
     811      IF( nn_timing == 1 ) CALL timing_stop('bdy_init') 
     812 
    808813   END SUBROUTINE bdy_init 
    809814 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdytides.F90

    r3116 r3182  
    2323   !!      vset          :/ 
    2424   !!---------------------------------------------------------------------- 
     25   USE timing          ! Timing 
    2526   USE oce             ! ocean dynamics and tracers  
    2627   USE dom_oce         ! ocean space and time domain 
     
    8788      NAMELIST/nambdy_tide/ln_tide_date, filtide, tide_cpt, tide_speed 
    8889      !!---------------------------------------------------------------------- 
     90 
     91      IF( nn_timing == 1 ) CALL timing_start('tide_init') 
    8992 
    9093      IF(lwp) WRITE(numout,*) 
     
    264267      END DO ! loop on ib_bdy 
    265268 
     269      IF( nn_timing == 1 ) CALL timing_stop('tide_init') 
     270 
    266271   END SUBROUTINE tide_init 
    267272 
     
    292297      REAL(wp), DIMENSION(jptides_max) :: z_sist, z_cost 
    293298      !!---------------------------------------------------------------------- 
     299 
     300      IF( nn_timing == 1 ) CALL timing_start('tide_update') 
    294301 
    295302      time_add = 0 
     
    329336         END DO 
    330337      END DO 
     338      ! 
     339      IF( nn_timing == 1 ) CALL timing_stop('tide_update') 
    331340      ! 
    332341   END SUBROUTINE tide_update 
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdytra.F90

    r3116 r3182  
    1414   !!   bdy_tra_frs        : Apply Flow Relaxation Scheme 
    1515   !!---------------------------------------------------------------------- 
     16   USE timing          ! Timing 
    1617   USE oce             ! ocean dynamics and tracers variables 
    1718   USE dom_oce         ! ocean space and time domain variables  
     
    7576      !!---------------------------------------------------------------------- 
    7677      ! 
     78      IF( nn_timing == 1 ) CALL timing_start('bdy_tra_frs') 
    7779      ! 
    7880      igrd = 1                       ! Everything is at T-points here 
     
    9092      ! 
    9193      IF( kt .eq. nit000 ) CLOSE( unit = 102 ) 
    92    ! 
     94      ! 
     95      IF( nn_timing == 1 ) CALL timing_stop('bdy_tra_frs') 
     96      ! 
    9397   END SUBROUTINE bdy_tra_frs 
    9498    
  • branches/2011/dev_NEMO_MERGE_2011/NEMOGCM/NEMO/OPA_SRC/BDY/bdyvol.F90

    r3116 r3182  
    1414   !!   'key_dynspg_flt'                              filtered free surface 
    1515   !!---------------------------------------------------------------------- 
     16   USE timing          ! Timing 
    1617   USE oce             ! ocean dynamics and tracers  
    1718   USE dom_oce         ! ocean space and time domain  
     
    7576      TYPE(OBC_INDEX), POINTER :: idx 
    7677      !!----------------------------------------------------------------------------- 
     78 
     79      IF( nn_timing == 1 ) CALL timing_start('bdy_vol') 
    7780 
    7881      IF( ln_vol ) THEN 
     
    161164      END IF  
    162165      ! 
     166      IF( nn_timing == 1 ) CALL timing_stop('bdy_vol') 
     167      ! 
    163168      END IF ! ln_vol 
    164169 
Note: See TracChangeset for help on using the changeset viewer.