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 2689 for branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90 – NEMO

Ignore:
Timestamp:
2011-03-15T15:49:11+01:00 (13 years ago)
Author:
gm
Message:

dynamic mem: #785 ; bug correction (sshn_b allocated twice) + style in time splitting case

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90

    r2684 r2689  
    5353   REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) ::  ftsw, ftse   ! (only used with een vorticity scheme) 
    5454 
    55    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   un_b, vn_b       ! now    averaged velocity 
    56    REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ub_b, vb_b       ! before averaged velocity 
     55   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   un_b, vn_b   ! now    averaged velocity 
     56   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   ub_b, vb_b   ! before averaged velocity 
    5757 
    5858   !! * Substitutions 
     
    7070      !!                  ***  routine dyn_spg_ts_alloc  *** 
    7171      !!---------------------------------------------------------------------- 
    72       ! 
    73       ALLOCATE( ftnw  (jpi,jpj) , ftne  (jpi,jpj) , ftsw  (jpi,jpj) , ftse (jpi,jpj) ,                                       & 
    74          &      un_b  (jpi,jpj) , vn_b  (jpi,jpj) , ub_b  (jpi,jpj) , vb_b (jpi,jpj) , ua_e  (jpi,jpj) , va_e  (jpi,jpj) ,   & 
    75          &      sshn_e(jpi,jpj) , ssha_e(jpi,jpj) , sshn_b(jpi,jpj) ,                                                        & 
    76          &      hu_e  (jpi,jpj) , hv_e  (jpi,jpj) , hur_e (jpi,jpj) , hvr_e(jpi,jpj) , STAT=dyn_spg_ts_alloc ) 
    77       IF(lk_mpp)   CALL mpp_sum( dyn_spg_ts_alloc ) 
     72      ALLOCATE( ftnw  (jpi,jpj) , ftne(jpi,jpj) , un_b(jpi,jpj) , vn_b(jpi,jpj) ,     & 
     73         &      ftsw  (jpi,jpj) , ftse(jpi,jpj) , ub_b(jpi,jpj) , vb_b(jpi,jpj) , STAT= dyn_spg_ts_alloc ) 
     74         ! 
     75      IF( lk_mpp                )   CALL mpp_sum( dyn_spg_ts_alloc ) 
     76      IF( dyn_spg_ts_alloc /= 0 )   CALL ctl_warn('dynspg_oce_alloc: failed to allocate arrays') 
    7877      ! 
    7978   END FUNCTION dyn_spg_ts_alloc 
     
    107106      !! References : Griffies et al., (2003): A technical guide to MOM4. NOAA/GFDL 
    108107      !!--------------------------------------------------------------------- 
    109       USE wrk_nemo, ONLY: wrk_in_use, wrk_not_released 
    110       USE wrk_nemo, ONLY: zhdiv => wrk_2d_1, zsshb_e => wrk_2d_2 
    111       USE wrk_nemo, ONLY: zbfru => wrk_2d_3  , zbfrv => wrk_2d_4  
    112       USE wrk_nemo, ONLY: zsshun_e => wrk_2d_5, zsshvn_e => wrk_2d_6 
    113       USE wrk_nemo, ONLY: zcu => wrk_2d_7, zwx => wrk_2d_8, zua => wrk_2d_9, zun => wrk_2d_10 
    114       USE wrk_nemo, ONLY: zcv => wrk_2d_11, zwy => wrk_2d_12, zva => wrk_2d_13, zvn => wrk_2d_14 
    115       USE wrk_nemo, ONLY: zun_e => wrk_2d_15, zub_e => wrk_2d_16, zu_sum => wrk_2d_17 
    116       USE wrk_nemo, ONLY: zvn_e => wrk_2d_18, zvb_e => wrk_2d_19, zv_sum => wrk_2d_20 
    117       USE wrk_nemo, ONLY: zssh_sum => wrk_2d_21 
    118       !! 
     108      USE wrk_nemo, ONLY:   wrk_in_use, wrk_not_released 
     109      USE wrk_nemo, ONLY:   zsshun_e => wrk_2d_1 , zsshb_e  => wrk_2d_2  , zhdiv => wrk_2d_3 
     110      USE wrk_nemo, ONLY:   zsshvn_e => wrk_2d_4 , zssh_sum => wrk_2d_5 
     111      USE wrk_nemo, ONLY:   zcu => wrk_2d_6  , zwx   => wrk_2d_7  , zua   => wrk_2d_8  , zbfru  => wrk_2d_9 
     112      USE wrk_nemo, ONLY:   zcv => wrk_2d_10 , zwy   => wrk_2d_11 , zva   => wrk_2d_12 , zbfrv  => wrk_2d_13 
     113      USE wrk_nemo, ONLY:   zun => wrk_2d_14 , zun_e => wrk_2d_15 , zub_e => wrk_2d_16 , zu_sum => wrk_2d_17 
     114      USE wrk_nemo, ONLY:   zvn => wrk_2d_18 , zvn_e => wrk_2d_19 , zvb_e => wrk_2d_20 , zv_sum => wrk_2d_21 
     115      ! 
    119116      INTEGER, INTENT(in)  ::   kt   ! ocean time-step index 
    120       !! 
     117      ! 
    121118      INTEGER  ::   ji, jj, jk, jn   ! dummy loop indices 
    122119      INTEGER  ::   icycle           ! local scalar 
     
    128125      !!---------------------------------------------------------------------- 
    129126 
    130       IF( wrk_in_use(2,  1, 2, 3, 4, 5, 6, 7, 8, 9,10,        & 
     127      IF( wrk_in_use(2,  1, 2, 3, 4, 5, 6, 7, 8, 9,10,     & 
    131128         &              11,12,13,14,15,16,17,18,19,20,21 ) ) THEN 
    132129         CALL ctl_stop( 'dyn_spg_ts: requested workspace arrays unavailable' )   ;   RETURN 
    133       END IF 
     130      ENDIF 
    134131 
    135132      IF( kt == nit000 ) THEN             !* initialisation 
     
    567564      IF( wrk_not_released(2,  1, 2, 3, 4, 5, 6, 7, 8, 9,10,         & 
    568565         &                    11,12,13,14,15,16,17,18,19,20,21) )    & 
    569          CALL ctl_stop('dyn_spg_ts: failed to release workspace arrays.') 
     566         CALL ctl_stop('dyn_spg_ts: failed to release workspace arrays') 
    570567      ! 
    571568   END SUBROUTINE dyn_spg_ts 
     
    642639 
    643640         IF( iom_varid( numror, 'sshn_b', ldstop = .FALSE. ) > 0 ) THEN 
    644             CALL iom_get( numror, jpdom_autoglo, 'sshn_b' , sshn_b (:,:) )   ! filtered extrenal ssh 
     641            CALL iom_get( numror, jpdom_autoglo, 'sshn_b' , sshn_b (:,:) )   ! filtered ssh 
    645642         ELSE 
    646             sshn_b(:,:)=sshb(:,:)   ! if not in restart set previous time mean to current baroclinic before value    
     643            sshn_b(:,:) = sshb(:,:)   ! if not in restart set previous time mean to current baroclinic before value    
    647644         ENDIF  
    648645      ELSEIF( TRIM(cdrw) == 'WRITE' ) THEN 
Note: See TracChangeset for help on using the changeset viewer.