- Timestamp:
- 2020-07-30T12:12:41+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/SBC/sbcssr.F90
r11442 r13355 24 24 USE lbclnk ! ocean lateral boundary conditions (or mpp link) 25 25 USE timing ! Timing 26 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 26 USE lib_fortran ! Fortran utilities (allows no signed zero when 'key_nosignedzero' defined) 27 27 USE stopack 28 28 USE wrk_nemo ! Memory Allocation … … 42 42 REAL(wp) :: rn_dqdt ! restoring factor on SST and SSS 43 43 REAL(wp) :: rn_deds ! restoring factor on SST and SSS 44 LOGICAL :: ln_sssr_bnd ! flag to bound erp term 44 LOGICAL :: ln_sssr_bnd ! flag to bound erp term 45 45 REAL(wp) :: rn_sssr_bnd ! ABS(Max./Min.) value of erp term [mm/day] 46 46 … … 101 101 rn_dqdt_s(:,:) = rn_dqdt 102 102 103 IF( ln_stopack .AND. nn_spp_dqdt > 0 ) & 104 & CALL spp_gen( kt, rn_dqdt_s, nn_spp_dqdt, rn_dqdt_sd, jk_spp_dqdt ) 103 #if defined key_traldf_c2d || key_traldf_c3d 104 IF( ln_stopack .AND. nn_spp_dqdt > 0 ) & 105 & CALL spp_gen( kt, rn_dqdt_s, nn_spp_dqdt, rn_dqdt_sd, jk_spp_dqdt ) 106 #else 107 IF ( ln_stopack .AND. nn_spp_dqdt > 0 ) & 108 & CALL ctl_stop( 'sbc_ssr: parameter perturbation will only work with '// & 109 'key_traldf_c2d or key_traldf_c3d') 110 #endif 111 105 112 DO jj = 1, jpj 106 113 DO ji = 1, jpi … … 117 124 CALL wrk_alloc( jpi, jpj, zsrp) 118 125 zsrp(:,:) = rn_deds 126 #if defined key_traldf_c2d || key_traldf_c3d 119 127 IF( ln_stopack .AND. nn_spp_dedt > 0 ) & 120 128 & CALL spp_gen(kt, zsrp, nn_spp_dedt, rn_dedt_sd, jk_spp_deds ) 129 #else 130 IF ( ln_stopack .AND. nn_spp_icealb > 0 ) & 131 & CALL ctl_stop( 'sbc_ssr: parameter perturbation will only work with '// & 132 'key_traldf_c2d or key_traldf_c3d') 133 #endif 134 135 121 136 !CDIR COLLAPSE 122 137 DO jj = 1, jpj 123 138 DO ji = 1, jpi 124 139 zerp = (zsrp(ji,jj)/rday) * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 125 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) 140 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) 126 141 sfx(ji,jj) = sfx(ji,jj) + zerp ! salt flux 127 142 erp(ji,jj) = zerp / MAX( sss_m(ji,jj), 1.e-20 ) ! converted into an equivalent volume flux (diagnostic only) … … 134 149 CALL wrk_alloc( jpi, jpj, zsrp) 135 150 zsrp(:,:) = rn_deds 151 #if defined key_traldf_c2d || key_traldf_c3d 136 152 IF( ln_stopack .AND. nn_spp_dedt > 0 ) & 137 153 & CALL spp_gen( kt, zsrp, nn_spp_dedt, rn_dedt_sd, jk_spp_deds ) 138 zerp_bnd = rn_sssr_bnd / rday ! - - 154 #else 155 IF ( ln_stopack .AND. nn_spp_dedt > 0 ) & 156 & CALL ctl_stop( 'sbc_ssr: parameter perturbation will only work with '// & 157 'key_traldf_c2d or key_traldf_c3d') 158 #endif 159 zerp_bnd = rn_sssr_bnd / rday ! - - 139 160 !CDIR COLLAPSE 140 161 DO jj = 1, jpj 141 DO ji = 1, jpi 162 DO ji = 1, jpi 142 163 zerp = (zsrp(ji,jj)/rday) * ( 1. - 2.*rnfmsk(ji,jj) ) & ! No damping in vicinity of river mouths 143 164 & * ( sss_m(ji,jj) - sf_sss(1)%fnow(ji,jj,1) ) & … … 161 182 END SUBROUTINE sbc_ssr 162 183 163 184 164 185 SUBROUTINE sbc_ssr_init 165 186 !!--------------------------------------------------------------------- … … 184 205 !!---------------------------------------------------------------------- 185 206 ! 186 187 REWIND( numnam_ref ) ! Namelist namsbc_ssr in reference namelist : 207 208 REWIND( numnam_ref ) ! Namelist namsbc_ssr in reference namelist : 188 209 READ ( numnam_ref, namsbc_ssr, IOSTAT = ios, ERR = 901) 189 210 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_ssr in reference namelist', lwp ) … … 240 261 ENDIF 241 262 ! 242 ! !* Initialize qrp and erp if no restoring 263 ! !* Initialize qrp and erp if no restoring 243 264 IF( nn_sstr /= 1 ) qrp(:,:) = 0._wp 244 265 IF( nn_sssr /= 1 .OR. nn_sssr /= 2 ) erp(:,:) = 0._wp 245 266 ! 246 267 END SUBROUTINE sbc_ssr_init 247 268 248 269 !!====================================================================== 249 270 END MODULE sbcssr
Note: See TracChangeset
for help on using the changeset viewer.