- Timestamp:
- 2015-10-06T13:40:42+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/DYN/sshwzv.F90
r5770 r5777 20 20 USE sbc_oce ! surface boundary condition: ocean 21 21 USE domvvl ! Variable volume 22 USE divcur ! hor. divergence and curl (div & cur routines) 23 USE restart ! only for lrst_oce 24 USE in_out_manager ! I/O manager 25 USE prtctl ! Print control 26 USE phycst 27 USE lbclnk ! ocean lateral boundary condition (or mpp link) 28 USE lib_mpp ! MPP library 22 USE divhor ! horizontal divergence 23 USE phycst ! physical constants 29 24 USE bdy_oce 30 25 USE bdy_par … … 36 31 USE asminc ! Assimilation increment 37 32 #endif 33 USE in_out_manager ! I/O manager 34 USE restart ! only for lrst_oce 35 USE prtctl ! Print control 36 USE lbclnk ! ocean lateral boundary condition (or mpp link) 37 USE lib_mpp ! MPP library 38 38 USE wrk_nemo ! Memory Allocation 39 39 USE timing ! Timing … … 66 66 !! by the time step. 67 67 !! 68 !! ** action : ssha :after sea surface height68 !! ** action : ssha, after sea surface height 69 69 !! 70 70 !! Reference : Leclair, M., and G. Madec, 2009, Ocean Modelling. 71 71 !!---------------------------------------------------------------------- 72 ! 73 REAL(wp), POINTER, DIMENSION(:,: ) :: zhdiv 74 INTEGER, INTENT(in) :: kt ! time step 72 INTEGER, INTENT(in) :: kt ! time step 75 73 ! 76 INTEGER :: jk ! dummy loop indice 77 REAL(wp) :: z2dt, z1_rau0 ! local scalars 78 !!---------------------------------------------------------------------- 79 ! 80 IF( nn_timing == 1 ) CALL timing_start('ssh_nxt') 74 INTEGER :: jk ! dummy loop indice 75 REAL(wp) :: z2dt, zcoef ! local scalars 76 REAL(wp), POINTER, DIMENSION(:,: ) :: zhdiv ! 2D workspace 77 !!---------------------------------------------------------------------- 78 ! 79 IF( nn_timing == 1 ) CALL timing_start('ssh_nxt') 81 80 ! 82 81 CALL wrk_alloc( jpi,jpj, zhdiv ) … … 88 87 ENDIF 89 88 ! 90 CALL div_ cur( kt ) ! Horizontal divergence & Relative vorticity89 CALL div_hor( kt ) ! Horizontal divergence 91 90 ! 92 91 z2dt = 2._wp * rdt ! set time step size (Euler/Leapfrog) … … 104 103 ! compute the vertical velocity which can be used to compute the non-linear terms of the momentum equations. 105 104 ! 106 z 1_rau0= 0.5_wp * r1_rau0107 ssha(:,:) = ( sshb(:,:) - z2dt * ( z 1_rau0* ( emp_b(:,:) + emp(:,:) ) + zhdiv(:,:) ) ) * ssmask(:,:)105 zcoef = 0.5_wp * r1_rau0 106 ssha(:,:) = ( sshb(:,:) - z2dt * ( zcoef * ( emp_b(:,:) + emp(:,:) ) + zhdiv(:,:) ) ) * ssmask(:,:) 108 107 109 108 #if ! defined key_dynspg_ts 110 109 ! These lines are not necessary with time splitting since 111 110 ! boundary condition on sea level is set during ts loop 112 # if defined key_agrif111 # if defined key_agrif 113 112 CALL agrif_ssh( kt ) 114 # endif115 # if defined key_bdy116 IF (lk_bdy) THEN117 CALL lbc_lnk( ssha, 'T', 1. ) ! Not sure that's necessary118 CALL bdy_ssh( ssha ) ! Duplicate sea level across open boundaries119 ENDIF 120 # endif113 # endif 114 # if defined key_bdy 115 IF( lk_bdy ) THEN 116 CALL lbc_lnk( ssha, 'T', 1. ) ! Not sure that's necessary 117 CALL bdy_ssh( ssha ) ! Duplicate sea level across open boundaries 118 ENDIF 119 # endif 121 120 #endif 122 121 123 122 #if defined key_asminc 124 ! ! Include the IAU weighted SSH increment 125 IF( lk_asminc .AND. ln_sshinc .AND. ln_asmiau ) THEN 123 IF( lk_asminc .AND. ln_sshinc .AND. ln_asmiau ) THEN ! Include the IAU weighted SSH increment 126 124 CALL ssh_asm_inc( kt ) 127 125 ssha(:,:) = ssha(:,:) + z2dt * ssh_iau(:,:) 128 126 ENDIF 129 127 #endif 130 131 128 ! !------------------------------! 132 129 ! ! outputs ! … … 165 162 !!---------------------------------------------------------------------- 166 163 ! 167 IF( nn_timing == 1 ) CALL timing_start('wzv')164 IF( nn_timing == 1 ) CALL timing_start('wzv') 168 165 ! 169 166 IF( kt == nit000 ) THEN
Note: See TracChangeset
for help on using the changeset viewer.