Changeset 5104
- Timestamp:
- 2015-02-23T17:07:54+01:00 (10 years ago)
- Location:
- branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM/CONFIG/SHARED/field_def.xml
r5099 r5104 327 327 <field id="utau" long_name="Wind Stress along i-axis" unit="N/m2" /> 328 328 <field id="uoce" long_name="ocean current along i-axis" unit="m/s" grid_ref="grid_U_3D" /> 329 <field id="ssu" long_name="ocean surface current along i-axis" unit="m/s" /> 329 330 <field id="uocetr_eff" long_name="Effective ocean transport along i-axis" unit="m3/s" grid_ref="grid_U_3D" /> 330 331 <field id="uocet" long_name="ocean transport along i-axis times temperature" unit="degC.m/s" grid_ref="grid_U_3D" /> … … 352 353 <field id="vtau" long_name="Wind Stress along j-axis" unit="N/m2" /> 353 354 <field id="voce" long_name="ocean current along j-axis" unit="m/s" grid_ref="grid_V_3D" /> 355 <field id="ssv" long_name="ocean surface current along j-axis" unit="m/s" /> 354 356 <field id="vocetr_eff" long_name="Effective ocean transport along j-axis" unit="m3/s" grid_ref="grid_V_3D" /> 355 357 <field id="vocet" long_name="ocean transport along j-axis times temperature" unit="degC.m/s" grid_ref="grid_V_3D" /> … … 743 745 <field_group id="groupU" > 744 746 <field field_ref="uoce" name="uo" long_name="sea_water_x_velocity" /> 747 <field field_ref="ssu" name="uos" long_name="sea_surface_x_velocity" /> 745 748 <field field_ref="utau" name="tauuo" long_name="surface_downward_x_stress" /> 746 749 </field_group> … … 748 751 <field_group id="groupV" > 749 752 <field field_ref="voce" name="vo" long_name="sea_water_y_velocity" /> 753 <field field_ref="ssv" name="vos" long_name="sea_surface_y_velocity" /> 750 754 <field field_ref="vtau" name="tauvo" long_name="surface_downward_y_stress" /> 751 755 </field_group> -
branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM/NEMO/OFF_SRC/dtadyn.F90
r5098 r5104 539 539 ! Partial steps: before Horizontal DErivative 540 540 ! only gtsu, gtsv, rhd, gru , grv are used 541 IF( ln_zps ) CALL zps_hde ( kt, jpts, pts, gtsu, gtsv, & ! Partial steps: before horizontal gradient 542 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 543 IF( ln_zps .AND. ln_isfcav) & 541 IF( ln_zps .AND. .NOT. ln_isfcav) & 542 & CALL zps_hde ( kt, jpts, pts, gtsu, gtsv, & ! Partial steps: before horizontal gradient 543 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 544 IF( ln_zps .AND. ln_isfcav) & 544 545 & CALL zps_hde_isf( kt, jpts, pts, gtsu, gtsv, & ! Partial steps for top cell (ISF) 545 546 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , & -
branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r5098 r5104 746 746 747 747 748 IF( ln_zps .AND. .NOT. lk_c1d )&749 & CALL zps_hde ( kt, jpts, tsb, gtsu, gtsv, &! Partial steps: before horizontal gradient750 & rhd, gru , grv ) ! of t, s, rd at the last ocean level751 IF( ln_zps .AND. .NOT. lk_c1d .AND. ln_isfcav) &752 & CALL zps_hde_isf( nit000, jpts, tsb, gtsu, gtsv, & ! Partial steps for top cell (ISF)748 IF( ln_zps .AND. .NOT. lk_c1d .AND. .NOT. ln_isfcav) & 749 & CALL zps_hde ( kt, jpts, tsb, gtsu, gtsv, & ! Partial steps: before horizontal gradient 750 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 751 IF( ln_zps .AND. .NOT. lk_c1d .AND. ln_isfcav) & 752 & CALL zps_hde_isf( nit000, jpts, tsb, gtsu, gtsv, & ! Partial steps for top cell (ISF) 753 753 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , & 754 754 & gtui, gtvi, grui, grvi, arui, arvi, gzui, gzvi, ge3rui, ge3rvi ) ! of t, s, rd at the last ocean level -
branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r5098 r5104 167 167 CALL iom_put( "uoce" , umask(:,:,:) * un(:,:,:) ) ! i-current 168 168 CALL iom_put( "voce" , vmask(:,:,:) * vn(:,:,:) ) ! j-current 169 CALL iom_put( "ssu" , umask(:,:,1) * un(:,:,1) ) ! i-current 170 CALL iom_put( "ssv" , vmask(:,:,1) * vn(:,:,1) ) ! j-current 169 171 ENDIF 170 172 CALL iom_put( "avt" , avt ) ! T vert. eddy diff. coef. -
branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM/NEMO/OPA_SRC/DOM/istate.F90
r5098 r5104 137 137 CALL eos( tsb, rhd, rhop, gdept_0(:,:,:) ) ! before potential and in situ densities 138 138 #if ! defined key_c1d 139 IF( ln_zps ) CALL zps_hde ( nit000, jpts, tsb, gtsu, gtsv, & ! Partial steps: before horizontal gradient 139 IF( ln_zps .AND. .NOT. ln_isfcav) & 140 & CALL zps_hde ( nit000, jpts, tsb, gtsu, gtsv, & ! Partial steps: before horizontal gradient 140 141 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 141 IF( ln_zps .AND. ln_isfcav) &142 IF( ln_zps .AND. ln_isfcav) & 142 143 & CALL zps_hde_isf( nit000, jpts, tsb, gtsu, gtsv, & ! Partial steps for top cell (ISF) 143 144 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , & -
branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM/NEMO/OPA_SRC/DYN/dynzdf_imp.F90
r5098 r5104 151 151 ua(ji,jj,ikbu) = ua(ji,jj,ikbu) + p2dt * bfrua(ji,jj) * ua_b(ji,jj) / ze3ua 152 152 va(ji,jj,ikbv) = va(ji,jj,ikbv) + p2dt * bfrva(ji,jj) * va_b(ji,jj) / ze3va 153 ikbu = miku(ji,jj) ! top ocean level at u- and v-points 154 ikbv = mikv(ji,jj) ! (first wet ocean u- and v-points) 155 ze3ua = ( 1._wp - r_vvl ) * fse3u_n(ji,jj,ikbu) + r_vvl * fse3u_a(ji,jj,ikbu) 156 ze3va = ( 1._wp - r_vvl ) * fse3v_n(ji,jj,ikbv) + r_vvl * fse3v_a(ji,jj,ikbv) 157 ua(ji,jj,ikbu) = ua(ji,jj,ikbu) + p2dt * tfrua(ji,jj) * ua_b(ji,jj) / ze3ua 158 va(ji,jj,ikbv) = va(ji,jj,ikbv) + p2dt * tfrva(ji,jj) * va_b(ji,jj) / ze3va 159 END DO 160 END DO 153 END DO 154 END DO 155 IF ( ln_isfcav ) THEN 156 DO jj = 2, jpjm1 157 DO ji = fs_2, fs_jpim1 ! vector opt. 158 ikbu = miku(ji,jj) ! top ocean level at u- and v-points 159 ikbv = mikv(ji,jj) ! (first wet ocean u- and v-points) 160 ze3ua = ( 1._wp - r_vvl ) * fse3u_n(ji,jj,ikbu) + r_vvl * fse3u_a(ji,jj,ikbu) 161 ze3va = ( 1._wp - r_vvl ) * fse3v_n(ji,jj,ikbv) + r_vvl * fse3v_a(ji,jj,ikbv) 162 ua(ji,jj,ikbu) = ua(ji,jj,ikbu) + p2dt * tfrua(ji,jj) * ua_b(ji,jj) / ze3ua 163 va(ji,jj,ikbv) = va(ji,jj,ikbv) + p2dt * tfrva(ji,jj) * va_b(ji,jj) / ze3va 164 END DO 165 END DO 166 END IF 161 167 ENDIF 162 168 #endif … … 173 179 ze3ua = ( 1._wp - r_vvl ) * fse3u_n(ji,jj,jk) + r_vvl * fse3u_a(ji,jj,jk) ! after scale factor at T-point 174 180 zcoef = - p2dt / ze3ua 175 zzwi = zcoef * avmu (ji,jj,jk ) / fse3uw(ji,jj,jk )176 zwi(ji,jj,jk) = zzwi * wumask(ji,jj,jk )177 zzws = zcoef * avmu (ji,jj,jk+1) / fse3uw(ji,jj,jk+1)181 zzwi = zcoef * avmu (ji,jj,jk ) / fse3uw(ji,jj,jk ) 182 zwi(ji,jj,jk) = zzwi * wumask(ji,jj,jk ) 183 zzws = zcoef * avmu (ji,jj,jk+1) / fse3uw(ji,jj,jk+1) 178 184 zws(ji,jj,jk) = zzws * wumask(ji,jj,jk+1) 179 185 zwd(ji,jj,jk) = 1._wp - zzwi - zzws -
branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90
r5098 r5104 142 142 DO jj = 1, jpjm1 143 143 DO ji = 1, jpim1 144 ! IF should be useless check zpshde (PM)145 144 zgru(ji,jj,mbku(ji,jj)) = gru(ji,jj) 146 145 zgrv(ji,jj,mbkv(ji,jj)) = grv(ji,jj) -
branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM/NEMO/OPA_SRC/ZDF/zdftke.F90
r5098 r5104 241 241 ! ! Surface boundary condition on tke 242 242 ! !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 243 DO jj = 2, jpjm1 ! en(mikt(ji,jj)) = rn_emin 244 DO ji = fs_2, fs_jpim1 ! vector opt. 245 en(ji,jj,mikt(ji,jj))=rn_emin 246 END DO 247 END DO 243 IF ( ln_isfcav ) THEN 244 DO jj = 2, jpjm1 ! en(mikt(ji,jj)) = rn_emin 245 DO ji = fs_2, fs_jpim1 ! vector opt. 246 en(ji,jj,mikt(ji,jj))=rn_emin * tmask(ji,jj,1) 247 END DO 248 END DO 249 END IF 248 250 DO jj = 2, jpjm1 ! en(1) = rn_ebb taum / rau0 (min value rn_emin0) 249 251 DO ji = fs_2, fs_jpim1 ! vector opt. -
branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM/NEMO/OPA_SRC/step.F90
r5098 r5104 146 146 IF( lk_ldfslp ) THEN ! slope of lateral mixing 147 147 CALL eos( tsb, rhd, gdept_0(:,:,:) ) ! before in situ density 148 IF( ln_zps ) CALL zps_hde ( kstp, jpts, tsb, gtsu, gtsv, & ! Partial steps: before horizontal gradient 148 IF( ln_zps .AND. .NOT. ln_isfcav) & 149 & CALL zps_hde ( kstp, jpts, tsb, gtsu, gtsv, & ! Partial steps: before horizontal gradient 149 150 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 150 IF( ln_zps .AND. ln_isfcav)&151 IF( ln_zps .AND. ln_isfcav) & 151 152 & CALL zps_hde_isf( kstp, jpts, tsb, gtsu, gtsv, & ! Partial steps for top cell (ISF) 152 153 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , & … … 180 181 ! is necessary to compute momentum advection for the rhs of barotropic loop: 181 182 CALL eos ( tsn, rhd, rhop, fsdept_n(:,:,:) ) ! now in situ density for hpg computation 182 IF( ln_zps ) CALL zps_hde ( kstp, jpts, tsn, gtsu, gtsv, & ! Partial steps: before horizontal gradient 183 IF( ln_zps .AND. .NOT. ln_isfcav) & 184 & CALL zps_hde ( kstp, jpts, tsn, gtsu, gtsv, & ! Partial steps: before horizontal gradient 183 185 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 184 IF( ln_zps .AND. ln_isfcav)&186 IF( ln_zps .AND. ln_isfcav) & 185 187 & CALL zps_hde_isf( kstp, jpts, tsn, gtsu, gtsv, & ! Partial steps for top cell (ISF) 186 188 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , & … … 259 261 CALL tra_nxt( kstp ) ! tracer fields at next time step 260 262 CALL eos ( tsa, rhd, rhop, fsdept_n(:,:,:) ) ! Time-filtered in situ density for hpg computation 261 IF( ln_zps ) CALL zps_hde ( kstp, jpts, tsa, gtsu, gtsv, & ! Partial steps: before horizontal gradient 263 IF( ln_zps .AND. .NOT. ln_isfcav) & 264 & CALL zps_hde ( kstp, jpts, tsa, gtsu, gtsv, & ! Partial steps: before horizontal gradient 262 265 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 263 IF( ln_zps .AND. ln_isfcav)&266 IF( ln_zps .AND. ln_isfcav) & 264 267 & CALL zps_hde_isf( kstp, jpts, tsa, gtsu, gtsv, & ! Partial steps for top cell (ISF) 265 268 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , & … … 268 271 IF ( .NOT. lk_dynspg_ts ) THEN ! eos already called in time-split case 269 272 CALL eos ( tsn, rhd, rhop, fsdept_n(:,:,:) ) ! now in situ density for hpg computation 270 IF( ln_zps ) CALL zps_hde ( kstp, jpts, tsn, gtsu, gtsv, & ! Partial steps: before horizontal gradient 271 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 272 IF( ln_zps .AND. ln_isfcav) & 273 IF( ln_zps .AND. .NOT. ln_isfcav) & 274 & CALL zps_hde ( kstp, jpts, tsn, gtsu, gtsv, & ! Partial steps: before horizontal gradient 275 & rhd, gru , grv ) ! of t, s, rd at the last ocean level 276 IF( ln_zps .AND. ln_isfcav) & 273 277 & CALL zps_hde_isf( kstp, jpts, tsn, gtsu, gtsv, & ! Partial steps for top cell (ISF) 274 278 & rhd, gru , grv , aru , arv , gzu , gzv , ge3ru , ge3rv , & -
branches/2015/dev_r5094_UKMO_ISFCLEAN/NEMOGCM/NEMO/TOP_SRC/TRP/trctrp.F90
r5098 r5104 83 83 #endif 84 84 85 IF( ln_zps ) CALL zps_hde ( kstp, jptra, trn, gtru, gtrv ) ! Partial steps: now horizontal gradient of passive 86 IF( ln_zps .AND. ln_isfcav) & 85 IF( ln_zps .AND. .NOT. ln_isfcav) & 86 & CALL zps_hde ( kstp, jptra, trn, gtru, gtrv ) ! Partial steps: now horizontal gradient of passive 87 IF( ln_zps .AND. ln_isfcav) & 87 88 & CALL zps_hde_isf( kstp, jptra, trn, pgtu=gtru, pgtv=gtrv, pgtui=gtrui, pgtvi=gtrvi ) ! Partial steps: now horizontal gradient of passive 88 89 ! tracers at the bottom ocean level
Note: See TracChangeset
for help on using the changeset viewer.