Changeset 5972 for branches/2014/dev_r4650_UKMO14.5_SST_BIAS_CORRECTION/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
- Timestamp:
- 2015-12-02T09:52:20+01:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2014/dev_r4650_UKMO14.5_SST_BIAS_CORRECTION/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r5967 r5972 28 28 USE sbcdcy ! surface boundary condition: diurnal cycle 29 29 USE sbcssm ! surface boundary condition: sea-surface mean variables 30 USE sbcapr ! surface boundary condition: atmospheric pressure31 30 USE sbcana ! surface boundary condition: analytical formulation 32 31 USE sbcflx ! surface boundary condition: flux formulation … … 133 132 WRITE(numout,*) ' forced-coupled mixed formulation ln_mixcpl = ', ln_mixcpl 134 133 WRITE(numout,*) ' OASIS coupling (with atm or sas) lk_oasis = ', lk_oasis 135 WRITE(numout,*) ' components of your executable 134 WRITE(numout,*) ' components of your executable nn_components = ', nn_components 136 135 WRITE(numout,*) ' Multicategory heat flux formulation (LIM3) nn_limflx = ', nn_limflx 137 136 WRITE(numout,*) ' Misc. options of sbc : ' … … 176 175 177 176 ! ! allocate sbc arrays 178 IF( sbc_oce_alloc() /= 0 ) CALL ctl_stop( ' STOP', 'sbc_init : unable to allocate sbc_oce arrays' )177 IF( sbc_oce_alloc() /= 0 ) CALL ctl_stop( 'sbc_init : unable to allocate sbc_oce arrays' ) 179 178 180 179 ! ! Checks: 181 IF( nn_isf .EQ. 0 ) THEN ! no specific treatment in vicinity of ice shelf 182 IF( sbc_isf_alloc() /= 0 ) CALL ctl_stop( 'STOP', 'sbc_init : unable to allocate sbc_isf arrays' ) 183 fwfisf (:,:) = 0.0_wp 184 fwfisf_b(:,:) = 0.0_wp 180 IF( nn_isf .EQ. 0 ) THEN ! variable initialisation if no ice shelf 181 IF( sbc_isf_alloc() /= 0 ) CALL ctl_stop( 'sbc_init : unable to allocate sbc_isf arrays' ) 182 fwfisf (:,:) = 0.0_wp ; fwfisf_b (:,:) = 0.0_wp 183 risf_tsc(:,:,:) = 0.0_wp ; risf_tsc_b(:,:,:) = 0.0_wp 184 rdivisf = 0.0_wp 185 185 END IF 186 186 IF( nn_ice == 0 .AND. nn_components /= jp_iam_opa ) fr_i(:,:) = 0.e0 ! no ice in the domain, ice fraction is always zero … … 223 223 ENDIF 224 224 ELSE 225 IF ( ln_cdgw .OR. ln_sdw ) &226 & CALL ctl_stop( 'Not Activated Wave Module (ln_wave=F) but&227 & asked couplingwith drag coefficient (ln_cdgw =T) or Stokes drift (ln_sdw=T) ')225 IF ( ln_cdgw .OR. ln_sdw ) & 226 & CALL ctl_stop( 'Not Activated Wave Module (ln_wave=F) but asked coupling ', & 227 & 'with drag coefficient (ln_cdgw =T) or Stokes drift (ln_sdw=T) ') 228 228 ENDIF 229 229 ! ! Choice of the Surface Boudary Condition (set nsbc) … … 240 240 IF( nn_components == jp_iam_opa ) & 241 241 & THEN ; nsbc = jp_none ; icpt = icpt + 1 ; ENDIF ! opa coupling via SAS module 242 IF( lk_esopa ) nsbc = jp_esopa ! esopa test, ALL formulations 243 ! 244 IF( icpt /= 1 .AND. .NOT.lk_esopa ) THEN 245 WRITE(numout,*) 246 WRITE(numout,*) ' E R R O R in setting the sbc, one and only one namelist/CPP key option ' 247 WRITE(numout,*) ' must be choosen. You choose ', icpt, ' option(s)' 248 WRITE(numout,*) ' We stop' 249 nstop = nstop + 1 250 ENDIF 242 ! 243 IF( icpt /= 1 ) CALL ctl_stop( 'sbc_init: choose ONE and only ONE sbc option' ) 244 ! 251 245 IF(lwp) THEN 252 246 WRITE(numout,*) 253 IF( nsbc == jp_esopa ) WRITE(numout,*) ' ESOPA test All surface boundary conditions'254 247 IF( nsbc == jp_gyre ) WRITE(numout,*) ' GYRE analytical formulation' 255 248 IF( nsbc == jp_ana ) WRITE(numout,*) ' analytical formulation' … … 266 259 ! 267 260 IF( lk_oasis ) CALL sbc_cpl_init (nn_ice) ! OASIS initialisation. must be done before: (1) first time step 268 ! 261 ! ! (2) the use of nn_fsbc 269 262 270 263 ! nn_fsbc initialization if OPA-SAS coupling via OASIS 271 264 ! sas model time step has to be declared in OASIS (mandatory) -> nn_fsbc has to be modified accordingly 272 265 IF ( nn_components /= jp_iam_nemo ) THEN 273 274 266 IF ( nn_components == jp_iam_opa ) nn_fsbc = cpl_freq('O_SFLX') / NINT(rdt) 275 267 IF ( nn_components == jp_iam_sas ) nn_fsbc = cpl_freq('I_SFLX') / NINT(rdt) … … 343 335 ! ! forcing field computation ! 344 336 ! ! ---------------------------------------- ! 345 !346 IF ( .NOT. lk_bdy ) then347 IF( ln_apr_dyn ) CALL sbc_apr( kt ) ! atmospheric pressure provided at kt+0.5*nn_fsbc348 ENDIF349 ! (caution called before sbc_ssm)350 337 ! 351 338 IF( nn_components /= jp_iam_sas ) CALL sbc_ssm( kt ) ! ocean sea surface variables (sst_m, sss_m, ssu_m, ssv_m) … … 372 359 IF( nn_components == jp_iam_opa ) & 373 360 CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) ! OPA-SAS coupling: OPA receiving fields from SAS 374 CASE( jp_esopa )375 CALL sbc_ana ( kt ) ! ESOPA, test ALL the formulations376 CALL sbc_gyre ( kt ) !377 CALL sbc_flx ( kt ) !378 CALL sbc_blk_clio( kt ) !379 CALL sbc_blk_core( kt ) !380 CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) !381 361 END SELECT 382 362
Note: See TracChangeset
for help on using the changeset viewer.