- Timestamp:
- 2019-11-22T15:29:17+01:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11943_MERGE_2019/src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src
- Property svn:mergeinfo deleted
-
NEMO/branches/2019/dev_r11943_MERGE_2019/src/OCE/SBC/sbcssm.F90
r10425 r11949 39 39 CONTAINS 40 40 41 SUBROUTINE sbc_ssm( kt )41 SUBROUTINE sbc_ssm( kt, Kbb, Kmm ) 42 42 !!--------------------------------------------------------------------- 43 43 !! *** ROUTINE sbc_oce *** … … 53 53 !!--------------------------------------------------------------------- 54 54 INTEGER, INTENT(in) :: kt ! ocean time step 55 INTEGER, INTENT(in) :: Kbb, Kmm ! ocean time level indices 55 56 ! 56 57 INTEGER :: ji, jj ! loop index … … 62 63 DO jj = 1, jpj 63 64 DO ji = 1, jpi 64 zts(ji,jj,jp_tem) = ts n(ji,jj,mikt(ji,jj),jp_tem)65 zts(ji,jj,jp_sal) = ts n(ji,jj,mikt(ji,jj),jp_sal)65 zts(ji,jj,jp_tem) = ts(ji,jj,mikt(ji,jj),jp_tem,Kmm) 66 zts(ji,jj,jp_sal) = ts(ji,jj,mikt(ji,jj),jp_sal,Kmm) 66 67 END DO 67 68 END DO … … 69 70 IF( nn_fsbc == 1 ) THEN ! Instantaneous surface fields ! 70 71 ! ! ---------------------------------------- ! 71 ssu_m(:,:) = u b(:,:,1)72 ssv_m(:,:) = v b(:,:,1)72 ssu_m(:,:) = uu(:,:,1,Kbb) 73 ssv_m(:,:) = vv(:,:,1,Kbb) 73 74 IF( l_useCT ) THEN ; sst_m(:,:) = eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 74 75 ELSE ; sst_m(:,:) = zts(:,:,jp_tem) … … 76 77 sss_m(:,:) = zts(:,:,jp_sal) 77 78 ! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 78 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh n(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) )79 ELSE ; ssh_m(:,:) = ssh n(:,:)80 ENDIF 81 ! 82 e3t_m(:,:) = e3t _n(:,:,1)79 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 80 ELSE ; ssh_m(:,:) = ssh(:,:,Kmm) 81 ENDIF 82 ! 83 e3t_m(:,:) = e3t(:,:,1,Kmm) 83 84 ! 84 85 frq_m(:,:) = fraqsr_1lev(:,:) … … 92 93 IF(lwp) WRITE(numout,*) '~~~~~~~ ' 93 94 zcoef = REAL( nn_fsbc - 1, wp ) 94 ssu_m(:,:) = zcoef * u b(:,:,1)95 ssv_m(:,:) = zcoef * v b(:,:,1)95 ssu_m(:,:) = zcoef * uu(:,:,1,Kbb) 96 ssv_m(:,:) = zcoef * vv(:,:,1,Kbb) 96 97 IF( l_useCT ) THEN ; sst_m(:,:) = zcoef * eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 97 98 ELSE ; sst_m(:,:) = zcoef * zts(:,:,jp_tem) … … 99 100 sss_m(:,:) = zcoef * zts(:,:,jp_sal) 100 101 ! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 101 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = zcoef * ( ssh n(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) )102 ELSE ; ssh_m(:,:) = zcoef * sshn(:,:)103 ENDIF 104 ! 105 e3t_m(:,:) = zcoef * e3t _n(:,:,1)102 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = zcoef * ( ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 103 ELSE ; ssh_m(:,:) = zcoef * ssh(:,:,Kmm) 104 ENDIF 105 ! 106 e3t_m(:,:) = zcoef * e3t(:,:,1,Kmm) 106 107 ! 107 108 frq_m(:,:) = zcoef * fraqsr_1lev(:,:) … … 120 121 ! ! Cumulate at each time step ! 121 122 ! ! ---------------------------------------- ! 122 ssu_m(:,:) = ssu_m(:,:) + u b(:,:,1)123 ssv_m(:,:) = ssv_m(:,:) + v b(:,:,1)123 ssu_m(:,:) = ssu_m(:,:) + uu(:,:,1,Kbb) 124 ssv_m(:,:) = ssv_m(:,:) + vv(:,:,1,Kbb) 124 125 IF( l_useCT ) THEN ; sst_m(:,:) = sst_m(:,:) + eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 125 126 ELSE ; sst_m(:,:) = sst_m(:,:) + zts(:,:,jp_tem) … … 127 128 sss_m(:,:) = sss_m(:,:) + zts(:,:,jp_sal) 128 129 ! ! removed inverse barometer ssh when Patm forcing is used (for sea-ice dynamics) 129 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh_m(:,:) + ssh n(:,:) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) )130 ELSE ; ssh_m(:,:) = ssh_m(:,:) + ssh n(:,:)131 ENDIF 132 ! 133 e3t_m(:,:) = e3t_m(:,:) + e3t _n(:,:,1)130 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh_m(:,:) + ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 131 ELSE ; ssh_m(:,:) = ssh_m(:,:) + ssh(:,:,Kmm) 132 ENDIF 133 ! 134 e3t_m(:,:) = e3t_m(:,:) + e3t(:,:,1,Kmm) 134 135 ! 135 136 frq_m(:,:) = frq_m(:,:) + fraqsr_1lev(:,:) … … 184 185 185 186 186 SUBROUTINE sbc_ssm_init 187 SUBROUTINE sbc_ssm_init( Kbb, Kmm ) 187 188 !!---------------------------------------------------------------------- 188 189 !! *** ROUTINE sbc_ssm_init *** … … 192 193 !! ** Action : - read parameters 193 194 !!---------------------------------------------------------------------- 195 INTEGER, INTENT(in) :: Kbb, Kmm ! ocean time level indices 194 196 REAL(wp) :: zcoef, zf_sbc ! local scalar 195 197 !!---------------------------------------------------------------------- … … 242 244 ! 243 245 IF(lwp) WRITE(numout,*) ' default initialisation of ss._m arrays' 244 ssu_m(:,:) = u b(:,:,1)245 ssv_m(:,:) = v b(:,:,1)246 IF( l_useCT ) THEN ; sst_m(:,:) = eos_pt_from_ct( ts n(:,:,1,jp_tem), tsn(:,:,1,jp_sal) )247 ELSE ; sst_m(:,:) = ts n(:,:,1,jp_tem)248 ENDIF 249 sss_m(:,:) = ts n (:,:,1,jp_sal)250 ssh_m(:,:) = ssh n (:,:)251 e3t_m(:,:) = e3t _n(:,:,1)246 ssu_m(:,:) = uu(:,:,1,Kbb) 247 ssv_m(:,:) = vv(:,:,1,Kbb) 248 IF( l_useCT ) THEN ; sst_m(:,:) = eos_pt_from_ct( ts(:,:,1,jp_tem,Kmm), ts(:,:,1,jp_sal,Kmm) ) 249 ELSE ; sst_m(:,:) = ts(:,:,1,jp_tem,Kmm) 250 ENDIF 251 sss_m(:,:) = ts (:,:,1,jp_sal,Kmm) 252 ssh_m(:,:) = ssh(:,:,Kmm) 253 e3t_m(:,:) = e3t (:,:,1,Kmm) 252 254 frq_m(:,:) = 1._wp 253 255 !
Note: See TracChangeset
for help on using the changeset viewer.