Changeset 3953 for branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DYN
- Timestamp:
- 2013-07-03T13:41:32+02:00 (11 years ago)
- Location:
- branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DYN
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg.F90
r3625 r3953 22 22 USE dynspg_flt ! surface pressure gradient (dyn_spg_flt routine) 23 23 USE dynadv ! dynamics: vector invariant versus flux form 24 USE sbctide 25 USE updtide 24 26 USE trdmod ! ocean dynamics trends 25 27 USE trdmod_oce ! ocean variables trends … … 100 102 ENDIF 101 103 102 IF( ln_apr_dyn ) THEN !== Atmospheric pressure gradient ==! 103 zg_2 = grav * 0.5 104 DO jj = 2, jpjm1 ! gradient of Patm using inverse barometer ssh 104 IF( ln_apr_dyn & ! atmos. pressure 105 .OR. ( .NOT.lk_dynspg_ts .AND. (ln_tide_pot .AND. lk_tide) ) & ! tide potential (no time slitting) 106 .OR. nn_ice_embd == 2 ) THEN ! embedded sea-ice 107 ! 108 DO jj = 2, jpjm1 105 109 DO ji = fs_2, fs_jpim1 ! vector opt. 106 spgu(ji,jj) = zg_2 * ( ssh_ib (ji+1,jj) - ssh_ib (ji,jj) & 107 & + ssh_ibb(ji+1,jj) - ssh_ibb(ji,jj) ) /e1u(ji,jj) 108 spgv(ji,jj) = zg_2 * ( ssh_ib (ji,jj+1) - ssh_ib (ji,jj) & 109 & + ssh_ibb(ji,jj+1) - ssh_ibb(ji,jj) ) /e2v(ji,jj) 110 END DO 111 END DO 112 DO jk = 1, jpkm1 ! Add the apg to the general trend 110 spgu(ji,jj) = 0._wp 111 spgv(ji,jj) = 0._wp 112 END DO 113 END DO 114 ! 115 IF( ln_apr_dyn ) THEN !== Atmospheric pressure gradient ==! 116 zg_2 = grav * 0.5 117 DO jj = 2, jpjm1 ! gradient of Patm using inverse barometer ssh 118 DO ji = fs_2, fs_jpim1 ! vector opt. 119 spgu(ji,jj) = spgu(ji,jj) + zg_2 * ( ssh_ib (ji+1,jj) - ssh_ib (ji,jj) & 120 & + ssh_ibb(ji+1,jj) - ssh_ibb(ji,jj) ) /e1u(ji,jj) 121 spgv(ji,jj) = spgv(ji,jj) + zg_2 * ( ssh_ib (ji,jj+1) - ssh_ib (ji,jj) & 122 & + ssh_ibb(ji,jj+1) - ssh_ibb(ji,jj) ) /e2v(ji,jj) 123 END DO 124 END DO 125 ENDIF 126 ! 127 ! !== tide potential forcing term ==! 128 IF( .NOT.lk_dynspg_ts .AND. ( ln_tide_pot .AND. lk_tide ) ) THEN ! N.B. added directly at sub-time-step in ts-case 129 ! 130 CALL upd_tide( kt ) ! update tide potential 131 ! 132 DO jj = 2, jpjm1 ! add tide potential forcing 133 DO ji = fs_2, fs_jpim1 ! vector opt. 134 spgv(ji,jj) = spgu(ji,jj) + grav * ( pot_astro(ji+1,jj) - pot_astro(ji,jj) ) / e1u(ji,jj) 135 spgv(ji,jj) = spgv(ji,jj) + grav * ( pot_astro(ji,jj+1) - pot_astro(ji,jj) ) / e2v(ji,jj) 136 END DO 137 END DO 138 ENDIF 139 ! 140 IF( nn_ice_embd == 2 ) THEN !== embedded sea ice: Pressure gradient due to snow-ice mass ==! 141 CALL wrk_alloc( jpi, jpj, zpice ) 142 ! 143 zintp = REAL( MOD( kt-1, nn_fsbc ) ) / REAL( nn_fsbc ) 144 zgrau0r = - grav * r1_rau0 145 zpice(:,:) = ( zintp * snwice_mass(:,:) + ( 1.- zintp ) * snwice_mass_b(:,:) ) * zgrau0r 146 DO jj = 2, jpjm1 147 DO ji = fs_2, fs_jpim1 ! vector opt. 148 spgu(ji,jj) = spgu(ji,jj) + ( zpice(ji+1,jj) - zpice(ji,jj) ) / e1u(ji,jj) 149 spgv(ji,jj) = spgu(ji,jj) + ( zpice(ji,jj+1) - zpice(ji,jj) ) / e2v(ji,jj) 150 END DO 151 END DO 152 ! 153 CALL wrk_dealloc( jpi, jpj, zpice ) 154 ENDIF 155 ! 156 DO jk = 1, jpkm1 !== Add all terms to the general trend 113 157 DO jj = 2, jpjm1 114 158 DO ji = fs_2, fs_jpim1 ! vector opt. … … 117 161 END DO 118 162 END DO 119 END DO 120 ENDIF 121 122 IF( nn_ice_embd == 2 ) THEN !== embedded sea ice: Pressure gradient due to snow-ice mass ==! 123 CALL wrk_alloc( jpi, jpj, zpice ) 124 ! 125 zintp = REAL( MOD( kt-1, nn_fsbc ) ) / REAL( nn_fsbc ) 126 zgrau0r = - grav * r1_rau0 127 zpice(:,:) = ( zintp * snwice_mass(:,:) + ( 1.- zintp ) * snwice_mass_b(:,:) ) * zgrau0r 128 DO jj = 2, jpjm1 129 DO ji = fs_2, fs_jpim1 ! vector opt. 130 spgu(ji,jj) = ( zpice(ji+1,jj) - zpice(ji,jj) ) / e1u(ji,jj) 131 spgv(ji,jj) = ( zpice(ji,jj+1) - zpice(ji,jj) ) / e2v(ji,jj) 132 END DO 133 END DO 134 DO jk = 1, jpkm1 ! Add the surface pressure trend to the general trend 135 DO jj = 2, jpjm1 136 DO ji = fs_2, fs_jpim1 ! vector opt. 137 ua(ji,jj,jk) = ua(ji,jj,jk) + spgu(ji,jj) 138 va(ji,jj,jk) = va(ji,jj,jk) + spgv(ji,jj) 139 END DO 140 END DO 141 END DO 142 ! 143 CALL wrk_dealloc( jpi, jpj, zpice ) 144 ENDIF 145 163 END DO 164 ENDIF 146 165 147 166 SELECT CASE ( nspg ) ! compute surf. pressure gradient trend and add it to the general trend -
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_exp.F90
r3680 r3953 91 91 spgv(ji,jj) = - grav * ( sshn(ji,jj+1) - sshn(ji,jj) ) / e2v(ji,jj) 92 92 END DO 93 END DO 93 END DO 94 ! 94 95 DO jk = 1, jpkm1 ! Add it to the general trend 95 96 DO jj = 2, jpjm1 -
branches/2013/dev_r3858_NOC_ZTC/NEMOGCM/NEMO/OPA_SRC/DYN/dynspg_ts.F90
r3951 r3953 396 396 ! !* Update the forcing (BDY and tides) 397 397 ! ! ------------------ 398 IF( lk_obc ) CALL obc_dta_bt( kt, jn )399 IF( lk_bdy ) CALL bdy_dta ( kt, jit=jn, time_offset=+1 )400 IF ( ln_tide_pot .AND. lk_tide) CALL upd_tide( kt, jn)398 IF( lk_obc ) CALL obc_dta_bt( kt, jn ) 399 IF( lk_bdy ) CALL bdy_dta ( kt, jit=jn, time_offset=1 ) 400 IF( ln_tide_pot .AND. lk_tide ) CALL upd_tide ( kt, kit=jn, kbaro=nn_baro ) 401 401 402 402 ! !* after ssh_e
Note: See TracChangeset
for help on using the changeset viewer.