- Timestamp:
- 2020-05-14T21:46:00+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser
- Property svn:externals
-
old new 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@HEAD sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11078_OSMOSIS_IMMERSE_Nurser/src/OCE/SBC/sbcssm.F90
r10425 r12928 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 … … 60 61 ! 61 62 ! !* surface T-, U-, V- ocean level variables (T, S, depth, velocity) 62 DO jj = 1, jpj 63 DO ji = 1, jpi 64 zts(ji,jj,jp_tem) = tsn(ji,jj,mikt(ji,jj),jp_tem) 65 zts(ji,jj,jp_sal) = tsn(ji,jj,mikt(ji,jj),jp_sal) 66 END DO 67 END DO 63 zts(:,:,jp_tem) = ts(:,:,1,jp_tem,Kmm) 64 zts(:,:,jp_sal) = ts(:,:,1,jp_sal,Kmm) 68 65 ! 69 66 IF( nn_fsbc == 1 ) THEN ! Instantaneous surface fields ! 70 67 ! ! ---------------------------------------- ! 71 ssu_m(:,:) = u b(:,:,1)72 ssv_m(:,:) = v b(:,:,1)68 ssu_m(:,:) = uu(:,:,1,Kbb) 69 ssv_m(:,:) = vv(:,:,1,Kbb) 73 70 IF( l_useCT ) THEN ; sst_m(:,:) = eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 74 ELSE 71 ELSE ; sst_m(:,:) = zts(:,:,jp_tem) 75 72 ENDIF 76 73 sss_m(:,:) = zts(:,:,jp_sal) 77 74 ! ! 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)75 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 76 ELSE ; ssh_m(:,:) = ssh(:,:,Kmm) 77 ENDIF 78 ! 79 e3t_m(:,:) = e3t(:,:,1,Kmm) 83 80 ! 84 81 frq_m(:,:) = fraqsr_1lev(:,:) … … 92 89 IF(lwp) WRITE(numout,*) '~~~~~~~ ' 93 90 zcoef = REAL( nn_fsbc - 1, wp ) 94 ssu_m(:,:) = zcoef * u b(:,:,1)95 ssv_m(:,:) = zcoef * v b(:,:,1)91 ssu_m(:,:) = zcoef * uu(:,:,1,Kbb) 92 ssv_m(:,:) = zcoef * vv(:,:,1,Kbb) 96 93 IF( l_useCT ) THEN ; sst_m(:,:) = zcoef * eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 97 94 ELSE ; sst_m(:,:) = zcoef * zts(:,:,jp_tem) … … 99 96 sss_m(:,:) = zcoef * zts(:,:,jp_sal) 100 97 ! ! 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)98 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = zcoef * ( ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 99 ELSE ; ssh_m(:,:) = zcoef * ssh(:,:,Kmm) 100 ENDIF 101 ! 102 e3t_m(:,:) = zcoef * e3t(:,:,1,Kmm) 106 103 ! 107 104 frq_m(:,:) = zcoef * fraqsr_1lev(:,:) … … 120 117 ! ! Cumulate at each time step ! 121 118 ! ! ---------------------------------------- ! 122 ssu_m(:,:) = ssu_m(:,:) + u b(:,:,1)123 ssv_m(:,:) = ssv_m(:,:) + v b(:,:,1)119 ssu_m(:,:) = ssu_m(:,:) + uu(:,:,1,Kbb) 120 ssv_m(:,:) = ssv_m(:,:) + vv(:,:,1,Kbb) 124 121 IF( l_useCT ) THEN ; sst_m(:,:) = sst_m(:,:) + eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 125 122 ELSE ; sst_m(:,:) = sst_m(:,:) + zts(:,:,jp_tem) … … 127 124 sss_m(:,:) = sss_m(:,:) + zts(:,:,jp_sal) 128 125 ! ! 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)126 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh_m(:,:) + ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 127 ELSE ; ssh_m(:,:) = ssh_m(:,:) + ssh(:,:,Kmm) 128 ENDIF 129 ! 130 e3t_m(:,:) = e3t_m(:,:) + e3t(:,:,1,Kmm) 134 131 ! 135 132 frq_m(:,:) = frq_m(:,:) + fraqsr_1lev(:,:) … … 184 181 185 182 186 SUBROUTINE sbc_ssm_init 183 SUBROUTINE sbc_ssm_init( Kbb, Kmm ) 187 184 !!---------------------------------------------------------------------- 188 185 !! *** ROUTINE sbc_ssm_init *** … … 192 189 !! ** Action : - read parameters 193 190 !!---------------------------------------------------------------------- 191 INTEGER, INTENT(in) :: Kbb, Kmm ! ocean time level indices 194 192 REAL(wp) :: zcoef, zf_sbc ! local scalar 195 193 !!---------------------------------------------------------------------- … … 242 240 ! 243 241 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)242 ssu_m(:,:) = uu(:,:,1,Kbb) 243 ssv_m(:,:) = vv(:,:,1,Kbb) 244 IF( l_useCT ) THEN ; sst_m(:,:) = eos_pt_from_ct( ts(:,:,1,jp_tem,Kmm), ts(:,:,1,jp_sal,Kmm) ) 245 ELSE ; sst_m(:,:) = ts(:,:,1,jp_tem,Kmm) 246 ENDIF 247 sss_m(:,:) = ts (:,:,1,jp_sal,Kmm) 248 ssh_m(:,:) = ssh(:,:,Kmm) 249 e3t_m(:,:) = e3t (:,:,1,Kmm) 252 250 frq_m(:,:) = 1._wp 253 251 !
Note: See TracChangeset
for help on using the changeset viewer.