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 7991 for branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90 – NEMO

Ignore:
Timestamp:
2017-05-01T16:21:42+02:00 (7 years ago)
Author:
gm
Message:

#1880 (HPC-09) - step-5: OPA/ZDF shear production term computed outside closure schemes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_r7881_HPC09_ZDF/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90

    r7990 r7991  
    99   USE dom_oce         ! ocean space and time domain 
    1010   USE zdf_oce         ! ocean vertical physics     
    11    USE zdfgls   , ONLY : hmxn 
     11   USE zdfgls   , ONLY : hmxl_n 
    1212   USE in_out_manager  ! I/O units 
    1313   USE iom             ! I/0 library 
     
    2323 
    2424   ! variables for calculating 25-hourly means 
    25    INTEGER , SAVE ::   cnt_25h     ! Counter for 25 hour means 
     25   INTEGER , SAVE ::   cnt_25h           ! Counter for 25 hour means 
     26   REAL(wp), SAVE ::   r1_25 = 0.04_wp   ! =1/25  
    2627   REAL(wp), SAVE, ALLOCATABLE,   DIMENSION(:,:,:) ::   tn_25h  , sn_25h 
    2728   REAL(wp), SAVE, ALLOCATABLE,   DIMENSION(:,:)   ::   sshn_25h  
     
    9495      ! ------------------------- ! 
    9596      cnt_25h = 1  ! sets the first value of sum at timestep 1 (note - should strictly be at timestep zero so before values used where possible)  
    96       tn_25h(:,:,:) = tsb(:,:,:,jp_tem) 
    97       sn_25h(:,:,:) = tsb(:,:,:,jp_sal) 
    98       sshn_25h(:,:) = sshb(:,:) 
    99       un_25h(:,:,:) = ub(:,:,:) 
    100       vn_25h(:,:,:) = vb(:,:,:) 
    101       wn_25h(:,:,:) = wn(:,:,:) 
    102       avt_25h(:,:,:) = avt(:,:,:) 
    103       avm_25h(:,:,:) = avm(:,:,:) 
     97      tn_25h  (:,:,:) = tsb (:,:,:,jp_tem) 
     98      sn_25h  (:,:,:) = tsb (:,:,:,jp_sal) 
     99      sshn_25h(:,:)   = sshb(:,:) 
     100      un_25h  (:,:,:) = ub  (:,:,:) 
     101      vn_25h  (:,:,:) = vb  (:,:,:) 
     102      wn_25h  (:,:,:) = wn  (:,:,:) 
     103      avt_25h (:,:,:) = avt (:,:,:) 
     104      avm_25h (:,:,:) = avm (:,:,:) 
    104105      IF( ln_zdftke ) THEN 
    105106         en_25h(:,:,:) = en(:,:,:) 
    106107      ENDIF 
    107108      IF( ln_zdfgls ) THEN 
    108          en_25h(:,:,:) = en(:,:,:) 
    109          rmxln_25h(:,:,:) = hmxn(:,:,:) 
     109         en_25h   (:,:,:) = en    (:,:,:) 
     110         rmxln_25h(:,:,:) = hmxl_n(:,:,:) 
    110111      ENDIF 
    111112#if defined key_lim3 || defined key_lim2 
     
    156157         ENDIF 
    157158 
    158          tn_25h(:,:,:)        = tn_25h(:,:,:) + tsn(:,:,:,jp_tem) 
    159          sn_25h(:,:,:)        = sn_25h(:,:,:) + tsn(:,:,:,jp_sal) 
    160          sshn_25h(:,:)        = sshn_25h(:,:) + sshn (:,:) 
    161          un_25h(:,:,:)        = un_25h(:,:,:) + un(:,:,:) 
    162          vn_25h(:,:,:)        = vn_25h(:,:,:) + vn(:,:,:) 
    163          wn_25h(:,:,:)        = wn_25h(:,:,:) + wn(:,:,:) 
    164          avt_25h(:,:,:)       = avt_25h(:,:,:) + avt(:,:,:) 
    165          avm_25h(:,:,:)       = avm_25h(:,:,:) + avm(:,:,:) 
    166          IF( ln_zdftke ) THEN 
    167             en_25h(:,:,:)        = en_25h(:,:,:) + en(:,:,:) 
    168          ENDIF 
    169          IF( ln_zdfgls ) THEN 
    170             en_25h(:,:,:)        = en_25h(:,:,:) + en(:,:,:) 
    171             rmxln_25h(:,:,:)      = rmxln_25h(:,:,:) + hmxn(:,:,:) 
     159         tn_25h  (:,:,:)     = tn_25h  (:,:,:) + tsn (:,:,:,jp_tem) 
     160         sn_25h  (:,:,:)     = sn_25h  (:,:,:) + tsn (:,:,:,jp_sal) 
     161         sshn_25h(:,:)       = sshn_25h(:,:)   + sshn(:,:) 
     162         un_25h  (:,:,:)     = un_25h  (:,:,:) + un  (:,:,:) 
     163         vn_25h  (:,:,:)     = vn_25h  (:,:,:) + vn  (:,:,:) 
     164         wn_25h  (:,:,:)     = wn_25h  (:,:,:) + wn  (:,:,:) 
     165         avt_25h (:,:,:)     = avt_25h (:,:,:) + avt (:,:,:) 
     166         avm_25h (:,:,:)     = avm_25h (:,:,:) + avm (:,:,:) 
     167         IF( ln_zdftke ) THEN 
     168            en_25h(:,:,:)    = en_25h  (:,:,:) + en(:,:,:) 
     169         ENDIF 
     170         IF( ln_zdfgls ) THEN 
     171            en_25h   (:,:,:) = en_25h   (:,:,:) + en    (:,:,:) 
     172            rmxln_25h(:,:,:) = rmxln_25h(:,:,:) + hmxl_n(:,:,:) 
    172173         ENDIF 
    173174         cnt_25h = cnt_25h + 1 
     
    187188         ENDIF 
    188189         ! 
    189          tn_25h(:,:,:)        = tn_25h(:,:,:) / 25.0_wp 
    190          sn_25h(:,:,:)        = sn_25h(:,:,:) / 25.0_wp 
    191          sshn_25h(:,:)        = sshn_25h(:,:) / 25.0_wp 
    192          un_25h(:,:,:)        = un_25h(:,:,:) / 25.0_wp 
    193          vn_25h(:,:,:)        = vn_25h(:,:,:) / 25.0_wp 
    194          wn_25h(:,:,:)        = wn_25h(:,:,:) / 25.0_wp 
    195          avt_25h(:,:,:)       = avt_25h(:,:,:) / 25.0_wp 
    196          avm_25h(:,:,:)       = avm_25h(:,:,:) / 25.0_wp 
    197          IF( ln_zdftke ) THEN 
    198             en_25h(:,:,:)        = en_25h(:,:,:) / 25.0_wp 
    199          ENDIF 
    200          IF( ln_zdfgls ) THEN 
    201             en_25h(:,:,:)        = en_25h(:,:,:) / 25.0_wp 
    202             rmxln_25h(:,:,:)       = rmxln_25h(:,:,:) / 25.0_wp 
     190         tn_25h  (:,:,:) = tn_25h  (:,:,:) * r1_25 
     191         sn_25h  (:,:,:) = sn_25h  (:,:,:) * r1_25 
     192         sshn_25h(:,:)   = sshn_25h(:,:)   * r1_25 
     193         un_25h  (:,:,:) = un_25h  (:,:,:) * r1_25 
     194         vn_25h  (:,:,:) = vn_25h  (:,:,:) * r1_25 
     195         wn_25h  (:,:,:) = wn_25h  (:,:,:) * r1_25 
     196         avt_25h (:,:,:) = avt_25h (:,:,:) * r1_25 
     197         avm_25h (:,:,:) = avm_25h (:,:,:) * r1_25 
     198         IF( ln_zdftke ) THEN 
     199            en_25h(:,:,:) = en_25h(:,:,:) * r1_25 
     200         ENDIF 
     201         IF( ln_zdfgls ) THEN 
     202            en_25h   (:,:,:) = en_25h   (:,:,:) * r1_25 
     203            rmxln_25h(:,:,:) = rmxln_25h(:,:,:) * r1_25 
    203204         ENDIF 
    204205         ! 
     
    236237         ! 
    237238         ! After the write reset the values to cnt=1 and sum values equal current value  
    238          tn_25h(:,:,:) = tsn(:,:,:,jp_tem) 
    239          sn_25h(:,:,:) = tsn(:,:,:,jp_sal) 
    240          sshn_25h(:,:) = sshn (:,:) 
    241          un_25h(:,:,:) = un(:,:,:) 
    242          vn_25h(:,:,:) = vn(:,:,:) 
    243          wn_25h(:,:,:) = wn(:,:,:) 
    244          avt_25h(:,:,:) = avt(:,:,:) 
    245          avm_25h(:,:,:) = avm(:,:,:) 
     239         tn_25h  (:,:,:) = tsn (:,:,:,jp_tem) 
     240         sn_25h  (:,:,:) = tsn (:,:,:,jp_sal) 
     241         sshn_25h(:,:)   = sshn(:,:) 
     242         un_25h  (:,:,:) = un  (:,:,:) 
     243         vn_25h  (:,:,:) = vn  (:,:,:) 
     244         wn_25h  (:,:,:) = wn  (:,:,:) 
     245         avt_25h (:,:,:) = avt (:,:,:) 
     246         avm_25h (:,:,:) = avm (:,:,:) 
    246247         IF( ln_zdftke ) THEN 
    247248            en_25h(:,:,:) = en(:,:,:) 
    248249         ENDIF 
    249250         IF( ln_zdfgls ) THEN 
    250             en_25h(:,:,:) = en(:,:,:) 
    251             rmxln_25h(:,:,:) = hmxn(:,:,:) 
     251            en_25h   (:,:,:) = en    (:,:,:) 
     252            rmxln_25h(:,:,:) = hmxl_n(:,:,:) 
    252253         ENDIF 
    253254         cnt_25h = 1 
Note: See TracChangeset for help on using the changeset viewer.