- Timestamp:
- 2015-10-31T08:40:45+01:00 (9 years ago)
- Location:
- branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r5836 r5845 172 172 & ssv_m (jpi,jpj) , sss_m(jpi,jpj) , ssh_m(jpi,jpj) , STAT=ierr(4) ) 173 173 ! 174 #if defined key_vvl175 174 ALLOCATE( e3t_m(jpi,jpj) , STAT=ierr(5) ) 176 #endif177 175 ! 178 176 sbc_oce_alloc = MAXVAL( ierr ) -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcana.F90
r5836 r5845 37 37 38 38 !! * Substitutions 39 # include "domzgr_substitute.h90"40 39 # include "vectopt_loop_substitute.h90" 41 40 !!---------------------------------------------------------------------- -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcapr.F90
r5836 r5845 39 39 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_apr ! structure of input fields (file informations, fields read) 40 40 41 !! * Substitutions42 # include "domzgr_substitute.h90"43 41 !!---------------------------------------------------------------------- 44 42 !! NEMO/OPA 4.0 , NEMO Consortium (2011) -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r5583 r5845 93 93 94 94 !! * Substitutions 95 # include "domzgr_substitute.h90"96 95 # include "vectopt_loop_substitute.h90" 97 96 !!---------------------------------------------------------------------- -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_mfs.F90
r5836 r5845 42 42 43 43 !! * Substitutions 44 # include "domzgr_substitute.h90"45 44 # include "vectopt_loop_substitute.h90" 46 45 !!---------------------------------------------------------------------- -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90
r5836 r5845 165 165 166 166 !! Substitution 167 # include "domzgr_substitute.h90"168 167 # include "vectopt_loop_substitute.h90" 169 168 !!---------------------------------------------------------------------- … … 2002 2001 ! ! first T level thickness 2003 2002 IF( ssnd(jps_e3t1st )%laction ) THEN 2004 CALL cpl_snd( jps_e3t1st, isec, RESHAPE ( fse3t_n(:,:,1) , (/jpi,jpj,1/) ), info )2003 CALL cpl_snd( jps_e3t1st, isec, RESHAPE ( e3t_n(:,:,1) , (/jpi,jpj,1/) ), info ) 2005 2004 ENDIF 2006 2005 ! ! Qsr fraction -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcflx.F90
r5836 r5845 17 17 USE sbcdcy ! surface boundary condition: diurnal cycle on qsr 18 18 USE phycst ! physical constants 19 ! 19 20 USE fldread ! read input fields 20 21 USE iom ! IOM library … … 37 38 38 39 !! * Substitutions 39 # include "domzgr_substitute.h90"40 40 # include "vectopt_loop_substitute.h90" 41 41 !!---------------------------------------------------------------------- … … 165 165 WRITE(numout,*) 166 166 WRITE(numout,*) ' day: ', ndastp , TRIM(sf(jf)%clvar), ' * ', zfact 167 CALL prihre( sf(jf)%fnow, jpi, jpj, 1, jpi, 20, 1, jpj, 10, zfact, numout )168 167 END DO 169 CALL FLUSH(numout)170 168 ENDIF 171 169 ! -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcfwb.F90
r5643 r5845 40 40 41 41 !! * Substitutions 42 # include "domzgr_substitute.h90"43 42 # include "vectopt_loop_substitute.h90" 44 43 !!---------------------------------------------------------------------- -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r5836 r5845 9 9 !!---------------------------------------------------------------------- 10 10 !! sbc_ice_cice : sea-ice model time-stepping and update ocean sbc over ice-covered area 11 !!12 !!13 11 !!---------------------------------------------------------------------- 14 12 USE oce ! ocean dynamics and tracers … … 92 90 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:), PRIVATE :: png ! local array used in sbc_cice_ice 93 91 94 !! * Substitutions95 # include "domzgr_substitute.h90"96 92 !!---------------------------------------------------------------------- 97 93 !! NEMO/OPA 3.7 , NEMO-consortium (2015) … … 249 245 sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 250 246 #if defined key_vvl 251 ! key_vvl necessary? clem: yes for compilation purpose 247 !!gm key_vvl necessary? clem: yes for compilation purpose 248 !!gm same remark as in limsbc 252 249 DO jk = 1,jpkm1 ! adjust initial vertical scale factors 253 fse3t_n(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshn(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) )254 fse3t_b(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshb(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) )250 e3t_n(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshn(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) ) 251 e3t_b(:,:,jk) = e3t_0(:,:,jk)*( 1._wp + sshb(:,:)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) ) 255 252 ENDDO 256 fse3t_a(:,:,:) = fse3t_b(:,:,:)253 e3t_a(:,:,:) = e3t_b(:,:,:) 257 254 ! Reconstruction of all vertical scale factors at now and before time 258 255 ! steps … … 260 257 ! Horizontal scale factor interpolations 261 258 ! -------------------------------------- 262 CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3u_b(:,:,:), 'U' )263 CALL dom_vvl_interpol( fse3t_b(:,:,:), fse3v_b(:,:,:), 'V' )264 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3u_n(:,:,:), 'U' )265 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3v_n(:,:,:), 'V' )266 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3f_n(:,:,:), 'F' )259 CALL dom_vvl_interpol( e3t_b(:,:,:), e3u_b(:,:,:), 'U' ) 260 CALL dom_vvl_interpol( e3t_b(:,:,:), e3v_b(:,:,:), 'V' ) 261 CALL dom_vvl_interpol( e3t_n(:,:,:), e3u_n(:,:,:), 'U' ) 262 CALL dom_vvl_interpol( e3t_n(:,:,:), e3v_n(:,:,:), 'V' ) 263 CALL dom_vvl_interpol( e3u_n(:,:,:), e3f_n(:,:,:), 'F' ) 267 264 ! Vertical scale factor interpolations 268 265 ! ------------------------------------ 269 CALL dom_vvl_interpol( fse3t_n(:,:,:), fse3w_n (:,:,:), 'W' )270 CALL dom_vvl_interpol( fse3u_n(:,:,:), fse3uw_n(:,:,:), 'UW' )271 CALL dom_vvl_interpol( fse3v_n(:,:,:), fse3vw_n(:,:,:), 'VW' )272 CALL dom_vvl_interpol( fse3u_b(:,:,:), fse3uw_b(:,:,:), 'UW' )273 CALL dom_vvl_interpol( fse3v_b(:,:,:), fse3vw_b(:,:,:), 'VW' )266 CALL dom_vvl_interpol( e3t_n(:,:,:), e3w_n (:,:,:), 'W' ) 267 CALL dom_vvl_interpol( e3u_n(:,:,:), e3uw_n(:,:,:), 'UW' ) 268 CALL dom_vvl_interpol( e3v_n(:,:,:), e3vw_n(:,:,:), 'VW' ) 269 CALL dom_vvl_interpol( e3u_b(:,:,:), e3uw_b(:,:,:), 'UW' ) 270 CALL dom_vvl_interpol( e3v_b(:,:,:), e3vw_b(:,:,:), 'VW' ) 274 271 ! t- and w- points depth 275 272 ! ---------------------- 276 fsdept_n(:,:,1) = 0.5_wp * fse3w_n(:,:,1)277 fsdepw_n(:,:,1) = 0.0_wp278 fsde3w_n(:,:,1) = fsdept_n(:,:,1) - sshn(:,:)273 gdept_n(:,:,1) = 0.5_wp * e3w_n(:,:,1) 274 gdepw_n(:,:,1) = 0.0_wp 275 gde3w_n(:,:,1) = gdept_n(:,:,1) - sshn(:,:) 279 276 DO jk = 2, jpk 280 fsdept_n(:,:,jk) = fsdept_n(:,:,jk-1) + fse3w_n(:,:,jk)281 fsdepw_n(:,:,jk) = fsdepw_n(:,:,jk-1) + fse3t_n(:,:,jk-1)282 fsde3w_n(:,:,jk) = fsdept_n(:,:,jk ) - sshn (:,:)277 gdept_n(:,:,jk) = gdept_n(:,:,jk-1) + e3w_n(:,:,jk) 278 gdepw_n(:,:,jk) = gdepw_n(:,:,jk-1) + e3t_n(:,:,jk-1) 279 gde3w_n(:,:,jk) = gdept_n(:,:,jk ) - sshn (:,:) 283 280 END DO 284 281 #endif … … 448 445 ! Freezing/melting potential 449 446 ! Calculated over NEMO leapfrog timestep (hence 2*dt) 450 nfrzmlt(:,:) =rau0*rcp*fse3t_m(:,:)*(Tocnfrz-sst_m(:,:))/(2.0*dt)447 nfrzmlt(:,:) = rau0 * rcp * e3t_m(:,:) * ( Tocnfrz-sst_m(:,:) ) / ( 2.0*dt ) 451 448 452 449 ztmp(:,:) = nfrzmlt(:,:) -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_if.F90
r5541 r5845 34 34 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_ice ! structure of input ice-cover (file informations, fields read) 35 35 36 !! * Substitutions37 # include "domzgr_substitute.h90"38 36 !!---------------------------------------------------------------------- 39 37 !! NEMO/OPA 3.3 , NEMO Consortium (2010) -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim.F90
r5541 r5845 74 74 75 75 !! * Substitutions 76 # include "domzgr_substitute.h90"77 76 # include "vectopt_loop_substitute.h90" 78 77 !!---------------------------------------------------------------------- -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_lim_2.F90
r5541 r5845 64 64 65 65 !! * Substitutions 66 # include "domzgr_substitute.h90"67 66 # include "vectopt_loop_substitute.h90" 68 67 !!---------------------------------------------------------------------- -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcisf.F90
r5836 r5845 68 68 TYPE(FLD_N) , PUBLIC :: sn_depmax_isf, sn_depmin_isf, sn_Leff_isf !: information about the runoff file to be read 69 69 70 !! * Substitutions71 # include "domzgr_substitute.h90"72 70 !!---------------------------------------------------------------------- 73 71 !! NEMO/OPA 3.7 , LOCEAN-IPSL (2015) … … 170 168 DO jj = 1, jpj 171 169 jk = 2 172 DO WHILE ( jk .LE. mbkt(ji,jj) .AND. fsdepw(ji,jj,jk) < rzisf_tbl(ji,jj) ) ; jk = jk + 1 ; END DO170 DO WHILE ( jk .LE. mbkt(ji,jj) .AND. gdepw_n(ji,jj,jk) < rzisf_tbl(ji,jj) ) ; jk = jk + 1 ; END DO 173 171 misfkt(ji,jj) = jk-1 174 172 END DO … … 195 193 ikb = misfkt(ji,jj) 196 194 ! thickness of boundary layer at least the top level thickness 197 rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), fse3t_n(ji,jj,ikt))195 rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), e3t_n(ji,jj,ikt)) 198 196 199 197 ! determine the deepest level influenced by the boundary layer 200 198 ! test on tmask useless ????? 201 199 DO jk = ikt, mbkt(ji,jj) 202 IF ( (SUM( fse3t_n(ji,jj,ikt:jk-1)) .LT. rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk200 IF ( (SUM(e3t_n(ji,jj,ikt:jk-1)) .LT. rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk 203 201 END DO 204 rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM( fse3t_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness.202 rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM(e3t_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness. 205 203 misfkb(ji,jj) = ikb ! last wet level of the tbl 206 204 r1_hisf_tbl(ji,jj) = 1._wp / rhisf_tbl(ji,jj) 207 205 208 zhk = SUM( fse3t(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1209 ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / fse3t(ji,jj,ikb) ! proportion of bottom cell influenced by boundary layer206 zhk = SUM( e3t_n(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1 207 ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / e3t_n(ji,jj,ikb) ! proportion of bottom cell influenced by boundary layer 210 208 END DO 211 209 END DO … … 369 367 ! after verif with UNESCO, wrong sign in BG eq. 2 370 368 ! Calculate freezing temperature 371 zpress = grav*rau0* fsdept(ji,jj,ik)*1.e-04369 zpress = grav*rau0*gdept_n(ji,jj,ik)*1.e-04 372 370 CALL eos_fzp(tsb(ji,jj,ik,jp_sal), zt_frz, zpress) 373 zt_sum = zt_sum + (tsn(ji,jj,ik,jp_tem)-zt_frz) * fse3t(ji,jj,ik) * tmask(ji,jj,ik) ! sum temp371 zt_sum = zt_sum + (tsn(ji,jj,ik,jp_tem)-zt_frz) * e3t_n(ji,jj,ik) * tmask(ji,jj,ik) ! sum temp 374 372 ENDDO 375 373 zt_ave = zt_sum/rhisf_tbl(ji,jj) ! calcul mean value … … 445 443 ! Crude approximation for pressure (but commonly used) 446 444 ! 1e-04 to convert from Pa to dBar 447 zpress(ji,jj)=grav*rau0* fsdepw(ji,jj,mikt(ji,jj))*1.e-04445 zpress(ji,jj)=grav*rau0*gdepw_n(ji,jj,mikt(ji,jj))*1.e-04 448 446 ! 449 447 END DO … … 643 641 ELSE 644 642 !! compute Rc number (as done in zdfric.F90) 645 zcoef = 0.5 / fse3w(ji,jj,ikt)643 zcoef = 0.5 / e3w_n(ji,jj,ikt) 646 644 ! ! shear of horizontal velocity 647 645 zdku = zcoef * ( un(ji-1,jj ,ikt ) + un(ji,jj,ikt ) & … … 663 661 zts(jp_tem) = ttbl(ji,jj) 664 662 zts(jp_sal) = stbl(ji,jj) 665 zdep = fsdepw(ji,jj,ikt)663 zdep = gdepw_n(ji,jj,ikt) 666 664 ! 667 665 CALL eos_rab( zts, zdep, zab ) … … 672 670 !! compute Monin Obukov Length 673 671 ! Maximum boundary layer depth 674 zhmax = fsdept(ji,jj,mbkt(ji,jj)) - fsdepw(ji,jj,mikt(ji,jj)) -0.001672 zhmax = gdept_n(ji,jj,mbkt(ji,jj)) - gdepw_n(ji,jj,mikt(ji,jj)) -0.001 675 673 ! Compute Monin obukhov length scale at the surface and Ekman depth: 676 674 zmob = zustar ** 3 / (vkarmn * (zbuofdep + epsln)) … … 730 728 ! level fully include in the ice shelf boundary layer 731 729 DO jk = ikt, ikb - 1 732 ze3 = fse3t_n(ji,jj,jk)730 ze3 = e3t_n(ji,jj,jk) 733 731 IF (cptin == 'T' ) varout(ji,jj) = varout(ji,jj) + varin(ji,jj,jk) * r1_hisf_tbl(ji,jj) * ze3 734 732 IF (cptin == 'U' ) varout(ji,jj) = varout(ji,jj) + 0.5_wp * (varin(ji,jj,jk) + varin(ji-1,jj,jk)) & … … 739 737 740 738 ! level partially include in ice shelf boundary layer 741 zhk = SUM( fse3t_n(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj)739 zhk = SUM( e3t_n(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) 742 740 IF (cptin == 'T') & 743 741 & varout(ji,jj) = varout(ji,jj) + varin(ji,jj,ikb) * (1._wp - zhk) … … 788 786 ikb = misfkt(ji,jj) 789 787 ! thickness of boundary layer at least the top level thickness 790 rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), fse3t(ji,jj,ikt))788 rhisf_tbl(ji,jj) = MAX(rhisf_tbl_0(ji,jj), e3t_n(ji,jj,ikt)) 791 789 792 790 ! determine the deepest level influenced by the boundary layer 793 791 ! test on tmask useless ????? 794 792 DO jk = ikt, mbkt(ji,jj) 795 IF ( (SUM( fse3t(ji,jj,ikt:jk-1)) .LT. rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk793 IF ( (SUM(e3t_n(ji,jj,ikt:jk-1)) .LT. rhisf_tbl(ji,jj)) .AND. (tmask(ji,jj,jk) == 1) ) ikb = jk 796 794 END DO 797 rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM( fse3t(ji,jj,ikt:ikb))) ! limit the tbl to water thickness.795 rhisf_tbl(ji,jj) = MIN(rhisf_tbl(ji,jj), SUM(e3t_n(ji,jj,ikt:ikb))) ! limit the tbl to water thickness. 798 796 misfkb(ji,jj) = ikb ! last wet level of the tbl 799 797 r1_hisf_tbl(ji,jj) = 1._wp / rhisf_tbl(ji,jj) 800 798 801 zhk = SUM( fse3t(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1802 ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / fse3t(ji,jj,ikb) ! proportion of bottom cell influenced by boundary layer799 zhk = SUM( e3t_n(ji, jj, ikt:ikb - 1)) * r1_hisf_tbl(ji,jj) ! proportion of tbl cover by cell from ikt to ikb - 1 800 ralpha(ji,jj) = rhisf_tbl(ji,jj) * (1._wp - zhk ) / e3t_n(ji,jj,ikb) ! proportion of bottom cell influenced by boundary layer 803 801 END DO 804 802 END DO -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r5836 r5845 62 62 INTEGER :: nsbc ! type of surface boundary condition (deduced from namsbc informations) 63 63 64 !! * Substitutions65 # include "domzgr_substitute.h90"66 64 !!---------------------------------------------------------------------- 67 65 !! NEMO/OPA 4.0 , NEMO-consortium (2011) -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcrnf.F90
r5836 r5845 68 68 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_t_rnf ! structure: river runoff temperature (file information, fields read) 69 69 70 !! * Substitutions71 # include "domzgr_substitute.h90"72 70 !!---------------------------------------------------------------------- 73 71 !! NEMO/OPA 3.3 , NEMO Consortium (2010) … … 216 214 h_rnf(ji,jj) = 0._wp 217 215 DO jk = 1, nk_rnf(ji,jj) ! recalculates h_rnf to be the depth in metres 218 h_rnf(ji,jj) = h_rnf(ji,jj) + fse3t(ji,jj,jk) ! to the bottom of the relevant grid box216 h_rnf(ji,jj) = h_rnf(ji,jj) + e3t_n(ji,jj,jk) ! to the bottom of the relevant grid box 219 217 END DO 220 218 ! ! apply the runoff input flow … … 235 233 ELSE !== runoff put only at the surface ==! 236 234 IF( lk_vvl ) THEN ! variable volume case 237 h_rnf(:,:) = fse3t(:,:,1) ! recalculate h_rnf to be depth of top box238 ENDIF 239 phdivn(:,:,1) = phdivn(:,:,1) - ( rnf(:,:) + rnf_b(:,:) ) * zfact * r1_rau0 / fse3t(:,:,1)235 h_rnf(:,:) = e3t_n(:,:,1) ! recalculate h_rnf to be depth of top box 236 ENDIF 237 phdivn(:,:,1) = phdivn(:,:,1) - ( rnf(:,:) + rnf_b(:,:) ) * zfact * r1_rau0 / e3t_n(:,:,1) 240 238 ENDIF 241 239 ! … … 377 375 h_rnf(ji,jj) = 0._wp 378 376 DO jk = 1, nk_rnf(ji,jj) 379 h_rnf(ji,jj) = h_rnf(ji,jj) + fse3t(ji,jj,jk)377 h_rnf(ji,jj) = h_rnf(ji,jj) + e3t_n(ji,jj,jk) 380 378 END DO 381 379 END DO … … 435 433 h_rnf(ji,jj) = 0._wp 436 434 DO jk = 1, nk_rnf(ji,jj) 437 h_rnf(ji,jj) = h_rnf(ji,jj) + fse3t(ji,jj,jk)435 h_rnf(ji,jj) = h_rnf(ji,jj) + e3t_n(ji,jj,jk) 438 436 END DO 439 437 END DO … … 448 446 ELSE ! runoffs applied at the surface 449 447 nk_rnf(:,:) = 1 450 h_rnf (:,:) = fse3t(:,:,1)448 h_rnf (:,:) = e3t_n(:,:,1) 451 449 ENDIF 452 450 ! -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssm.F90
r5407 r5845 28 28 PUBLIC sbc_ssm_init ! routine called by sbcmod.F90 29 29 30 LOGICAL, SAVE :: l_ssm_mean = .FALSE. ! keep track of whether means have been read 31 ! from restart file 30 LOGICAL, SAVE :: l_ssm_mean = .FALSE. ! keep track of whether means have been read from restart file 32 31 33 !! * Substitutions34 # include "domzgr_substitute.h90"35 32 !!---------------------------------------------------------------------- 36 33 !! NEMO/OPA 3.3 , NEMO Consortium (2010) … … 81 78 ENDIF 82 79 ! 83 IF( lk_vvl ) e3t_m(:,:) = fse3t_n(:,:,1)80 IF( lk_vvl ) e3t_m(:,:) = e3t_n(:,:,1) 84 81 ! 85 82 frq_m(:,:) = fraqsr_1lev(:,:) … … 103 100 ENDIF 104 101 ! 105 IF( lk_vvl ) e3t_m(:,:) = zcoef * fse3t_n(:,:,1)102 IF( lk_vvl ) e3t_m(:,:) = zcoef * e3t_n(:,:,1) 106 103 ! 107 104 frq_m(:,:) = zcoef * fraqsr_1lev(:,:) … … 131 128 ENDIF 132 129 ! 133 IF( lk_vvl ) e3t_m(:,:) = fse3t_m(:,:) + fse3t_n(:,:,1)130 IF( lk_vvl ) e3t_m(:,:) = e3t_m(:,:) + e3t_n(:,:,1) 134 131 ! 135 132 frq_m(:,:) = frq_m(:,:) + fraqsr_1lev(:,:) … … 144 141 ssv_m(:,:) = ssv_m(:,:) * zcoef ! 145 142 ssh_m(:,:) = ssh_m(:,:) * zcoef ! mean SSH [m] 146 IF( lk_vvl ) e3t_m(:,:) = fse3t_m(:,:) * zcoef ! mean vertical scale factor [m]143 IF( lk_vvl ) e3t_m(:,:) = e3t_m(:,:) * zcoef ! mean vertical scale factor [m] 147 144 frq_m(:,:) = frq_m(:,:) * zcoef ! mean fraction of solar net radiation absorbed in the 1st T level [-] 148 145 ! … … 229 226 sss_m(:,:) = zcoef * sss_m(:,:) 230 227 ssh_m(:,:) = zcoef * ssh_m(:,:) 231 IF( lk_vvl ) e3t_m(:,:) = zcoef * fse3t_m(:,:)228 IF( lk_vvl ) e3t_m(:,:) = zcoef * e3t_m(:,:) 232 229 frq_m(:,:) = zcoef * frq_m(:,:) 233 230 ELSE … … 247 244 sss_m(:,:) = tsn(:,:,1,jp_sal) 248 245 ssh_m(:,:) = sshn(:,:) 249 IF( lk_vvl ) e3t_m(:,:) = fse3t_n(:,:,1)246 IF( lk_vvl ) e3t_m(:,:) = e3t_n(:,:,1) 250 247 frq_m(:,:) = 1._wp 251 248 ! -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90
r5836 r5845 47 47 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_sss ! structure of input SSS (file informations, fields read) 48 48 49 !! * Substitutions50 # include "domzgr_substitute.h90"51 49 !!---------------------------------------------------------------------- 52 50 !! NEMO/OPA 4.0 , NEMO Consortium (2011) -
branches/2015/dev_r5836_NOC3_vvl_by_default/NEMOGCM/NEMO/OPA_SRC/SBC/sbcwave.F90
r5836 r5845 40 40 41 41 !! * Substitutions 42 # include "domzgr_substitute.h90"43 42 # include "vectopt_loop_substitute.h90" 44 43 !!---------------------------------------------------------------------- … … 128 127 ! !* distribute it on the vertical 129 128 DO jk = 1, jpkm1 130 zusd_t(:,:,jk) = sf_sd(jp_usd)%fnow(:,:,1) * EXP( -2._wp * sf_sd(jp_wn)%fnow(:,:,1) * fsdept_n(:,:,jk) )131 zvsd_t(:,:,jk) = sf_sd(jp_vsd)%fnow(:,:,1) * EXP( -2._wp * sf_sd(jp_wn)%fnow(:,:,1) * fsdept_n(:,:,jk) )129 zusd_t(:,:,jk) = sf_sd(jp_usd)%fnow(:,:,1) * EXP( -2._wp * sf_sd(jp_wn)%fnow(:,:,1) * gdept_n(:,:,jk) ) 130 zvsd_t(:,:,jk) = sf_sd(jp_vsd)%fnow(:,:,1) * EXP( -2._wp * sf_sd(jp_wn)%fnow(:,:,1) * gdept_n(:,:,jk) ) 132 131 END DO 133 132 ! !* interpolate the stokes drift from t-point to u- and v-points … … 136 135 DO ji = 1, jpim1 137 136 usd3d(ji,jj,jk) = 0.5_wp * ( zusd_t(ji ,jj,jk) + zusd_t(ji+1,jj,jk) ) * umask(ji,jj,jk) 138 vsd3d(ji,jj,jk) = 0.5_wp * ( zvsd_t(ji ,jj,jk) + zvsd_t(ji +1,jj,jk) ) * vmask(ji,jj,jk)137 vsd3d(ji,jj,jk) = 0.5_wp * ( zvsd_t(ji ,jj,jk) + zvsd_t(ji,jj+1,jk) ) * vmask(ji,jj,jk) 139 138 END DO 140 139 END DO … … 146 145 DO jj = 2, jpjm1 147 146 DO ji = fs_2, fs_jpim1 ! vector opt. 148 ze3hdiv(ji,jj,jk) = ( e2u(ji ,jj) * fse3u_n(ji ,jj,jk) * usd3d(ji ,jj,jk) &149 & - e2u(ji-1,jj) * fse3u_n(ji-1,jj,jk) * usd3d(ji-1,jj,jk) &150 & + e1v(ji,jj ) * fse3v_n(ji,jj ,jk) * vsd3d(ji,jj ,jk) &151 & - e1v(ji,jj-1) * fse3v_n(ji,jj-1,jk) * vsd3d(ji,jj-1,jk) ) * r1_e1e2t(ji,jj)147 ze3hdiv(ji,jj,jk) = ( e2u(ji ,jj) * e3u_n(ji ,jj,jk) * usd3d(ji ,jj,jk) & 148 & - e2u(ji-1,jj) * e3u_n(ji-1,jj,jk) * usd3d(ji-1,jj,jk) & 149 & + e1v(ji,jj ) * e3v_n(ji,jj ,jk) * vsd3d(ji,jj ,jk) & 150 & - e1v(ji,jj-1) * e3v_n(ji,jj-1,jk) * vsd3d(ji,jj-1,jk) ) * r1_e1e2t(ji,jj) 152 151 END DO 153 152 END DO
Note: See TracChangeset
for help on using the changeset viewer.