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 – NEMO

Changeset 7900


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

Location:
branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN
Files:
3 edited

Legend:

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

    r7845 r7900  
    387387      END DO 
    388388 
    389       CALL lbc_lnk( u_int, 'U', 1. ) 
    390       CALL lbc_lnk( v_int, 'V', 1. ) 
    391  
    392389      CALL dyn_vrt_dia_2d(u_int, v_int, id_dia_vor_int, id_dia_vor_mn) 
    393390 
     
    436433      CALL wrk_alloc(jpi, jpj, vor_mn) 
    437434 
     435      CALL lbc_lnk( u_int, 'U', 1. ) 
     436      CALL lbc_lnk( v_int, 'V', 1. ) 
     437 
    438438      ! 
    439439      ! Calculate the vorticity tendencies for the vertical integrals. 
  • branches/UKMO/GO6_dyn_vrt_diag/NEMOGCM/NEMO/OPA_SRC/DYN/dynhpg.F90

    r7845 r7900  
    409409            zvap = -zcoef0 * ( rhd   (ji,jj+1,1) + rhd   (ji,jj,1) + 2._wp * znad )   & 
    410410               &           * ( fsde3w(ji,jj+1,1) - fsde3w(ji,jj,1) ) / e2v(ji,jj) 
    411             ! hydrostatic pressure gradient along s-surfaces 
     411            ! hydrostatic pressure gradient along s-surfaces added to above correction 
    412412            zhpi(ji,jj,1) = zuap + zcoef0 / e1u(ji,jj) * ( fse3w(ji+1,jj  ,1) * ( znad + rhd(ji+1,jj  ,1) )   & 
    413413               &                                  - fse3w(ji  ,jj  ,1) * ( znad + rhd(ji  ,jj  ,1) ) ) 
     
    429429               zvap = -zcoef0 * ( rhd   (ji  ,jj+1,jk) + rhd   (ji,jj,jk) + 2._wp * znad )   & 
    430430                  &           * ( fsde3w(ji  ,jj+1,jk) - fsde3w(ji,jj,jk) ) / e2v(ji,jj) 
    431                ! hydrostatic pressure gradient along s-surfaces with correction 
     431               ! hydrostatic pressure gradient along s-surfaces added to above correction 
    432432               zhpi(ji,jj,jk) = zuap + zhpi(ji,jj,jk-1) + zcoef0 / e1u(ji,jj)   & 
    433433                  &           * (  fse3w(ji+1,jj,jk) * ( rhd(ji+1,jj,jk) + rhd(ji+1,jj,jk-1) + 2*znad )   & 
  • 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.