- Timestamp:
- 2020-09-14T17:40:34+02:00 (4 years ago)
- Location:
- NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS
- Property svn:externals
-
old new 3 3 ^/utils/build/mk@HEAD mk 4 4 ^/utils/tools@HEAD tools 5 ^/vendors/AGRIF/dev @HEADext/AGRIF5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS ext/AGRIF 6 6 ^/vendors/FCM@HEAD ext/FCM 7 7 ^/vendors/IOIPSL@HEAD ext/IOIPSL 8 9 # SETTE 10 ^/utils/CI/sette@13382 sette
-
- Property svn:externals
-
NEMO/branches/2019/dev_r11351_fldread_with_XIOS/src/OCE/SBC/sbcssm.F90
r11405 r13463 32 32 LOGICAL, SAVE :: l_ssm_mean = .FALSE. ! keep track of whether means have been read from restart file 33 33 34 # include "domzgr_substitute.h90" 34 35 !!---------------------------------------------------------------------- 35 36 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 39 40 CONTAINS 40 41 41 SUBROUTINE sbc_ssm( kt )42 SUBROUTINE sbc_ssm( kt, Kbb, Kmm ) 42 43 !!--------------------------------------------------------------------- 43 44 !! *** ROUTINE sbc_oce *** … … 53 54 !!--------------------------------------------------------------------- 54 55 INTEGER, INTENT(in) :: kt ! ocean time step 56 INTEGER, INTENT(in) :: Kbb, Kmm ! ocean time level indices 55 57 ! 56 58 INTEGER :: ji, jj ! loop index … … 60 62 ! 61 63 ! !* 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 64 zts(:,:,jp_tem) = ts(:,:,1,jp_tem,Kmm) 65 zts(:,:,jp_sal) = ts(:,:,1,jp_sal,Kmm) 68 66 ! 69 67 IF( nn_fsbc == 1 ) THEN ! Instantaneous surface fields ! 70 68 ! ! ---------------------------------------- ! 71 ssu_m(:,:) = u b(:,:,1)72 ssv_m(:,:) = v b(:,:,1)69 ssu_m(:,:) = uu(:,:,1,Kbb) 70 ssv_m(:,:) = vv(:,:,1,Kbb) 73 71 IF( l_useCT ) THEN ; sst_m(:,:) = eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 74 ELSE 72 ELSE ; sst_m(:,:) = zts(:,:,jp_tem) 75 73 ENDIF 76 74 sss_m(:,:) = zts(:,:,jp_sal) 77 75 ! ! 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)76 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 77 ELSE ; ssh_m(:,:) = ssh(:,:,Kmm) 78 ENDIF 79 ! 80 e3t_m(:,:) = e3t(:,:,1,Kmm) 83 81 ! 84 82 frq_m(:,:) = fraqsr_1lev(:,:) … … 92 90 IF(lwp) WRITE(numout,*) '~~~~~~~ ' 93 91 zcoef = REAL( nn_fsbc - 1, wp ) 94 ssu_m(:,:) = zcoef * u b(:,:,1)95 ssv_m(:,:) = zcoef * v b(:,:,1)92 ssu_m(:,:) = zcoef * uu(:,:,1,Kbb) 93 ssv_m(:,:) = zcoef * vv(:,:,1,Kbb) 96 94 IF( l_useCT ) THEN ; sst_m(:,:) = zcoef * eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 97 95 ELSE ; sst_m(:,:) = zcoef * zts(:,:,jp_tem) … … 99 97 sss_m(:,:) = zcoef * zts(:,:,jp_sal) 100 98 ! ! 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)99 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = zcoef * ( ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) ) 100 ELSE ; ssh_m(:,:) = zcoef * ssh(:,:,Kmm) 101 ENDIF 102 ! 103 e3t_m(:,:) = zcoef * e3t(:,:,1,Kmm) 106 104 ! 107 105 frq_m(:,:) = zcoef * fraqsr_1lev(:,:) … … 120 118 ! ! Cumulate at each time step ! 121 119 ! ! ---------------------------------------- ! 122 ssu_m(:,:) = ssu_m(:,:) + u b(:,:,1)123 ssv_m(:,:) = ssv_m(:,:) + v b(:,:,1)120 ssu_m(:,:) = ssu_m(:,:) + uu(:,:,1,Kbb) 121 ssv_m(:,:) = ssv_m(:,:) + vv(:,:,1,Kbb) 124 122 IF( l_useCT ) THEN ; sst_m(:,:) = sst_m(:,:) + eos_pt_from_ct( zts(:,:,jp_tem), zts(:,:,jp_sal) ) 125 123 ELSE ; sst_m(:,:) = sst_m(:,:) + zts(:,:,jp_tem) … … 127 125 sss_m(:,:) = sss_m(:,:) + zts(:,:,jp_sal) 128 126 ! ! 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)127 IF( ln_apr_dyn ) THEN ; ssh_m(:,:) = ssh_m(:,:) + ssh(:,:,Kmm) - 0.5 * ( ssh_ib(:,:) + ssh_ibb(:,:) ) 128 ELSE ; ssh_m(:,:) = ssh_m(:,:) + ssh(:,:,Kmm) 129 ENDIF 130 ! 131 e3t_m(:,:) = e3t_m(:,:) + e3t(:,:,1,Kmm) 134 132 ! 135 133 frq_m(:,:) = frq_m(:,:) + fraqsr_1lev(:,:) … … 184 182 185 183 186 SUBROUTINE sbc_ssm_init 184 SUBROUTINE sbc_ssm_init( Kbb, Kmm ) 187 185 !!---------------------------------------------------------------------- 188 186 !! *** ROUTINE sbc_ssm_init *** … … 192 190 !! ** Action : - read parameters 193 191 !!---------------------------------------------------------------------- 192 INTEGER, INTENT(in) :: Kbb, Kmm ! ocean time level indices 194 193 REAL(wp) :: zcoef, zf_sbc ! local scalar 195 194 !!---------------------------------------------------------------------- … … 210 209 l_ssm_mean = .TRUE. 211 210 IF(lrxios) CALL iom_swap( TRIM(crxios_context) ) 212 CALL iom_get( numror , 'nn_fsbc', zf_sbc, ldxios = lrxios ) ! sbc frequency of previous run213 CALL iom_get( numror, jpdom_autoglo, 'ssu_m' , ssu_m, ldxios = lrxios ) ! sea surface mean velocity (U-point)214 CALL iom_get( numror, jpdom_autoglo, 'ssv_m' , ssv_m, ldxios = lrxios ) ! " " velocity (V-point)215 CALL iom_get( numror, jpdom_autoglo, 'sst_m' , sst_m, ldxios = lrxios ) ! " " temperature (T-point)216 CALL iom_get( numror, jpdom_autoglo, 'sss_m' , sss_m, ldxios = lrxios ) ! " " salinity (T-point)217 CALL iom_get( numror, jpdom_autoglo, 'ssh_m' , ssh_m, ldxios = lrxios ) ! " " height (T-point)218 CALL iom_get( numror, jpdom_autoglo, 'e3t_m' , e3t_m, ldxios = lrxios ) ! 1st level thickness (T-point)219 211 ! fraction of solar net radiation absorbed in 1st T level 220 212 IF( iom_varid( numror, 'frq_m', ldstop = .FALSE. ) > 0 ) THEN 221 CALL iom_get( numror, jpdom_auto glo, 'frq_m' , frq_m, ldxios = lrxios )213 CALL iom_get( numror, jpdom_auto, 'frq_m' , frq_m, ldxios = lrxios ) 222 214 ELSE 223 215 frq_m(:,:) = 1._wp ! default definition … … 244 236 ! 245 237 IF(lwp) WRITE(numout,*) ' default initialisation of ss._m arrays' 246 ssu_m(:,:) = u b(:,:,1)247 ssv_m(:,:) = v b(:,:,1)248 IF( l_useCT ) THEN ; sst_m(:,:) = eos_pt_from_ct( ts n(:,:,1,jp_tem), tsn(:,:,1,jp_sal) )249 ELSE ; sst_m(:,:) = ts n(:,:,1,jp_tem)250 ENDIF 251 sss_m(:,:) = ts n (:,:,1,jp_sal)252 ssh_m(:,:) = ssh n (:,:)253 e3t_m(:,:) = e3t _n(:,:,1)238 ssu_m(:,:) = uu(:,:,1,Kbb) 239 ssv_m(:,:) = vv(:,:,1,Kbb) 240 IF( l_useCT ) THEN ; sst_m(:,:) = eos_pt_from_ct( ts(:,:,1,jp_tem,Kmm), ts(:,:,1,jp_sal,Kmm) ) 241 ELSE ; sst_m(:,:) = ts(:,:,1,jp_tem,Kmm) 242 ENDIF 243 sss_m(:,:) = ts (:,:,1,jp_sal,Kmm) 244 ssh_m(:,:) = ssh(:,:,Kmm) 245 e3t_m(:,:) = e3t (:,:,1,Kmm) 254 246 frq_m(:,:) = 1._wp 255 247 !
Note: See TracChangeset
for help on using the changeset viewer.