- Timestamp:
- 2015-11-09T18:33:54+01:00 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5803_NOC_WAD/NEMOGCM/NEMO/OPA_SRC/SBC/sbcmod.F90
r5643 r5870 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 180 IF( nn_isf .EQ. 0 ) THEN ! variable initialisation if no ice shelf 182 IF( sbc_isf_alloc() /= 0 ) CALL ctl_stop( ' STOP', 'sbc_init : unable to allocate sbc_isf arrays' )181 IF( sbc_isf_alloc() /= 0 ) CALL ctl_stop( 'sbc_init : unable to allocate sbc_isf arrays' ) 183 182 fwfisf (:,:) = 0.0_wp ; fwfisf_b (:,:) = 0.0_wp 184 183 risf_tsc(:,:,:) = 0.0_wp ; risf_tsc_b(:,:,:) = 0.0_wp … … 224 223 ENDIF 225 224 ELSE 226 IF ( ln_cdgw .OR. ln_sdw ) &227 & CALL ctl_stop( 'Not Activated Wave Module (ln_wave=F) but&228 & 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) ') 229 228 ENDIF 230 229 ! ! Choice of the Surface Boudary Condition (set nsbc) … … 241 240 IF( nn_components == jp_iam_opa ) & 242 241 & THEN ; nsbc = jp_none ; icpt = icpt + 1 ; ENDIF ! opa coupling via SAS module 243 IF( lk_esopa ) nsbc = jp_esopa ! esopa test, ALL formulations 244 ! 245 IF( icpt /= 1 .AND. .NOT.lk_esopa ) THEN 246 WRITE(numout,*) 247 WRITE(numout,*) ' E R R O R in setting the sbc, one and only one namelist/CPP key option ' 248 WRITE(numout,*) ' must be choosen. You choose ', icpt, ' option(s)' 249 WRITE(numout,*) ' We stop' 250 nstop = nstop + 1 251 ENDIF 242 ! 243 IF( icpt /= 1 ) CALL ctl_stop( 'sbc_init: choose ONE and only ONE sbc option' ) 244 ! 252 245 IF(lwp) THEN 253 246 WRITE(numout,*) 254 IF( nsbc == jp_esopa ) WRITE(numout,*) ' ESOPA test All surface boundary conditions'255 247 IF( nsbc == jp_gyre ) WRITE(numout,*) ' GYRE analytical formulation' 256 248 IF( nsbc == jp_ana ) WRITE(numout,*) ' analytical formulation' … … 267 259 ! 268 260 IF( lk_oasis ) CALL sbc_cpl_init (nn_ice) ! OASIS initialisation. must be done before: (1) first time step 269 ! 261 ! ! (2) the use of nn_fsbc 270 262 271 263 ! nn_fsbc initialization if OPA-SAS coupling via OASIS 272 264 ! sas model time step has to be declared in OASIS (mandatory) -> nn_fsbc has to be modified accordingly 273 265 IF ( nn_components /= jp_iam_nemo ) THEN 274 275 266 IF ( nn_components == jp_iam_opa ) nn_fsbc = cpl_freq('O_SFLX') / NINT(rdt) 276 267 IF ( nn_components == jp_iam_sas ) nn_fsbc = cpl_freq('I_SFLX') / NINT(rdt) … … 344 335 ! ! forcing field computation ! 345 336 ! ! ---------------------------------------- ! 346 !347 IF ( .NOT. lk_bdy ) then348 IF( ln_apr_dyn ) CALL sbc_apr( kt ) ! atmospheric pressure provided at kt+0.5*nn_fsbc349 ENDIF350 ! (caution called before sbc_ssm)351 337 ! 352 338 IF( nn_components /= jp_iam_sas ) CALL sbc_ssm( kt ) ! ocean sea surface variables (sst_m, sss_m, ssu_m, ssv_m) … … 373 359 IF( nn_components == jp_iam_opa ) & 374 360 CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) ! OPA-SAS coupling: OPA receiving fields from SAS 375 CASE( jp_esopa )376 CALL sbc_ana ( kt ) ! ESOPA, test ALL the formulations377 CALL sbc_gyre ( kt ) !378 CALL sbc_flx ( kt ) !379 CALL sbc_blk_clio( kt ) !380 CALL sbc_blk_core( kt ) !381 CALL sbc_cpl_rcv ( kt, nn_fsbc, nn_ice ) !382 361 END SELECT 383 362
Note: See TracChangeset
for help on using the changeset viewer.