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 7900 for branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90 – NEMO

Ignore:
Timestamp:
2017-04-12T11:48:20+02:00 (7 years ago)
Author:
glong
Message:

Comment changes to dynhpg.F90, moved halo exchange to 2d method from 3d method in divcur.F90 and picked off spg and wind stress in dynspg_ts.F90

File:
1 edited

Legend:

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

    r7845 r7900  
    150150      REAL(wp) ::   zx1, zy1, zx2, zy2         !   -      - 
    151151      REAL(wp) ::   z1_12, z1_8, z1_4, z1_2    !   -      - 
    152       REAL(wp) ::   zu_spg, zv_spg             !   -      - 
    153152      REAL(wp) ::   zhura, zhvra               !   -      - 
    154153      REAL(wp) ::   za0, za1, za2, za3           !   -      - 
     
    159158      REAL(wp), POINTER, DIMENSION(:,:) :: zhup2_e, zhvp2_e, zhust_e, zhvst_e 
    160159      REAL(wp), POINTER, DIMENSION(:,:) :: zsshu_a, zsshv_a 
     160      REAL(wp), POINTER, DIMENSION(:,:) :: zu_dia, zv_dia, zu_wfrc, zv_wfrc 
     161      REAL(wp), POINTER, DIMENSION(:,:) :: zu_spg, zv_spg 
    161162      REAL(wp), POINTER, DIMENSION(:,:) :: zhf 
    162163      !!---------------------------------------------------------------------- 
     
    170171      CALL wrk_alloc( jpi, jpj, zhup2_e, zhvp2_e, zhust_e, zhvst_e) 
    171172      CALL wrk_alloc( jpi, jpj, zsshu_a, zsshv_a                                   ) 
     173      CALL wrk_alloc( jpi, jpj, zu_dia, zv_dia, zu_wfrc, zv_wfrc                   ) 
     174      CALL wrk_alloc( jpi, jpj, zu_spg, zv_spg                                     ) 
    172175      CALL wrk_alloc( jpi, jpj, zhf ) 
    173176      ! 
     
    397400      END DO  
    398401      ! 
     402      !                                         ! Set zu_dia for use in dyn_vrt_dia 
     403      zu_dia(:,:) = zu_frc(:,:) 
     404      zv_dia(:,:) = zv_frc(:,:) 
     405      ! 
    399406      !                 ! Add bottom stress contribution from baroclinic velocities:       
    400407      IF (ln_bt_fw) THEN 
     
    423430      !        
    424431      IF (ln_bt_fw) THEN                        ! Add wind forcing 
    425          zu_frc(:,:) =  zu_frc(:,:) + zraur * utau(:,:) * hur(:,:) 
    426          zv_frc(:,:) =  zv_frc(:,:) + zraur * vtau(:,:) * hvr(:,:) 
     432         zu_wfrc(:,:) = zraur * utau(:,:) * hur(:,:) 
     433         zv_wfrc(:,:) = zraur * vtau(:,:) * hvr(:,:) 
    427434      ELSE 
    428          zu_frc(:,:) =  zu_frc(:,:) + zraur * z1_2 * ( utau_b(:,:) + utau(:,:) ) * hur(:,:) 
    429          zv_frc(:,:) =  zv_frc(:,:) + zraur * z1_2 * ( vtau_b(:,:) + vtau(:,:) ) * hvr(:,:) 
     435         zu_wfrc(:,:) = zraur * z1_2 * ( utau_b(:,:) + utau(:,:) ) * hur(:,:) 
     436         zv_wfrc(:,:) = zraur * z1_2 * ( vtau_b(:,:) + vtau(:,:) ) * hvr(:,:) 
    430437      ENDIF   
     438      zu_frc(:,:) = zu_frc(:,:) + zu_wfrc(:,:) 
     439      zv_frc(:,:) = zv_frc(:,:) + zv_wfrc(:,:) 
     440 
     441                                        ! Calculate dia_vor_int & dia_vor_mn if required 
     442      IF ( ( id_dia_vrt_spg_int == 1 ) .or. (id_dia_vrt_spg_mean == 1 ) ) THEN 
     443         zu_dia(:,:) = zu_dia(:,:) + zu_wfrc(:,:) 
     444         zv_dia(:,:) = zv_dia(:,:) + zv_wfrc(:,:) 
     445         CALL dyn_vrt_dia_2d(zu_dia, zv_dia, id_dia_vrt_spg_int, id_dia_vrt_spg_mean) 
     446         !     Reset zu_dia for use again later. 
     447         zu_dia(:,:) = zu_dia(:,:) - zu_wfrc(:,:) 
     448         zv_dia(:,:) = zv_dia(:,:) - zv_wfrc(:,:) 
     449      END IF 
     450      ! 
    431451      ! 
    432452      IF ( ln_apr_dyn ) THEN                    ! Add atm pressure forcing 
     
    434454            DO jj = 2, jpjm1               
    435455               DO ji = fs_2, fs_jpim1   ! vector opt. 
    436                   zu_spg =  grav * (  ssh_ib (ji+1,jj  ) - ssh_ib (ji,jj) ) /e1u(ji,jj) 
    437                   zv_spg =  grav * (  ssh_ib (ji  ,jj+1) - ssh_ib (ji,jj) ) /e2v(ji,jj) 
    438                   zu_frc(ji,jj) = zu_frc(ji,jj) + zu_spg 
    439                   zv_frc(ji,jj) = zv_frc(ji,jj) + zv_spg 
     456                  zu_spg(ji,jj) =  grav * (  ssh_ib (ji+1,jj  ) - ssh_ib (ji,jj) ) /e1u(ji,jj) 
     457                  zv_spg(ji,jj) =  grav * (  ssh_ib (ji  ,jj+1) - ssh_ib (ji,jj) ) /e2v(ji,jj) 
    440458               END DO 
    441459            END DO 
     
    443461            DO jj = 2, jpjm1               
    444462               DO ji = fs_2, fs_jpim1   ! vector opt. 
    445                   zu_spg =  grav * z1_2 * (  ssh_ib (ji+1,jj  ) - ssh_ib (ji,jj)    & 
     463                  zu_spg(ji,jj) =  grav * z1_2 * (  ssh_ib (ji+1,jj  ) - ssh_ib (ji,jj)    & 
    446464                      &                    + ssh_ibb(ji+1,jj  ) - ssh_ibb(ji,jj)  ) /e1u(ji,jj) 
    447                   zv_spg =  grav * z1_2 * (  ssh_ib (ji  ,jj+1) - ssh_ib (ji,jj)    & 
     465                  zv_spg(ji,jj) =  grav * z1_2 * (  ssh_ib (ji  ,jj+1) - ssh_ib (ji,jj)    & 
    448466                      &                    + ssh_ibb(ji  ,jj+1) - ssh_ibb(ji,jj)  ) /e2v(ji,jj) 
    449                   zu_frc(ji,jj) = zu_frc(ji,jj) + zu_spg 
    450                   zv_frc(ji,jj) = zv_frc(ji,jj) + zv_spg 
    451467               END DO 
    452468            END DO 
    453469         ENDIF  
    454       ENDIF 
    455       ! 
    456                                                 ! Calculate dia_vor_int & 
    457                                                 ! dia_vor_mn if required 
    458       IF ( ( id_dia_vrt_spg_int == 1 ) .or. (id_dia_vrt_spg_mean == 1 ) ) THEN 
    459           CALL dyn_vrt_dia_2d(zu_frc, zv_frc, di_dia_vrt_spg_int, id_dia_vrt_spg_mean) 
    460       END IF 
     470         zu_frc(:,:) = zu_frc(:,:) + zu_spg(:,:) 
     471         zv_frc(:,:) = zv_frc(:,:) + zv_spg(:,:) 
     472                                        ! Calculate dia_vor_int & dia_vor_mn if required 
     473         IF ( ( id_dia_vrt_spg_int == 1 ) .or. (id_dia_vrt_spg_mean == 1 ) ) THEN 
     474            zu_dia(:,:) = zu_dia(:,:) + zu_spg(:,:) 
     475            zv_dia(:,:) = zv_dia(:,:) + zv_spg(:,:) 
     476            CALL dyn_vrt_dia_2d(zu_dia, zv_dia, id_dia_vrt_spg_int, id_dia_vrt_spg_mean) 
     477         END IF 
     478      ENDIF 
     479      ! 
    461480      !                                   !* Right-Hand-Side of the barotropic ssh equation 
    462481      !                                   ! ----------------------------------------------- 
     
    933952      CALL wrk_dealloc( jpi, jpj, zhup2_e, zhvp2_e, zhust_e, zhvst_e ) 
    934953      CALL wrk_dealloc( jpi, jpj, zsshu_a, zsshv_a                                   ) 
     954      CALL wrk_dealloc( jpi, jpj, zu_dia, zv_dia, zu_wfrc, zv_wfrc                   ) 
     955      CALL wrk_dealloc( jpi, jpj, zu_spg, zv_spg                                     ) 
    935956      CALL wrk_dealloc( jpi, jpj, zhf ) 
    936957      ! 
Note: See TracChangeset for help on using the changeset viewer.