Changeset 6010
- Timestamp:
- 2015-12-07T14:32:39+01:00 (9 years ago)
- Location:
- branches/2015/dev_MetOffice_merge_2015/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 1 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_MetOffice_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r6005 r6010 145 145 ENDIF 146 146 147 IF(ln_diurnal) THEN148 CALL iom_put( "sst_wl" , x_dsst ) ! warm layer149 CALL iom_put( "sst_cs" , x_csdsst ) ! cool skin150 ENDIF151 152 IF( ln_diurnal_only ) RETURN153 154 147 IF( .NOT.lk_vvl ) THEN 155 148 CALL iom_put( "e3t" , fse3t_n(:,:,:) ) -
branches/2015/dev_MetOffice_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIU/cool_skin.F90
r5676 r6010 94 94 95 95 INTEGER :: ji,jj 96 96 97 IF ( .NOT. ln_blk_core ) THEN 98 CALL ctl_stop("cool_skin.f90: diurnal flux processing only implemented"//& 99 & " for core bulk forcing") 100 ENDIF 101 97 102 DO jj = 1,jpj 98 103 DO ji = 1,jpi -
branches/2015/dev_MetOffice_merge_2015/NEMOGCM/NEMO/OPA_SRC/DIU/diurnal_bulk.F90
r5676 r6010 81 81 END SUBROUTINE diurnal_sst_bulk_init 82 82 83 SUBROUTINE diurnal_sst_takaya_step( psolflux, pqflux, ptauflux, prho, p_rdt,&84 & pla, pthick, pcoolthick, pmu, ld_calcfrac,&83 SUBROUTINE diurnal_sst_takaya_step(kt, psolflux, pqflux, ptauflux, prho, p_rdt,& 84 & pla, pthick, pcoolthick, pmu, & 85 85 & p_fvel_bkginc, p_hflux_bkginc) 86 86 !!---------------------------------------------------------------------- … … 123 123 REAL(wp), INTENT(IN) :: p_rdt ! time-step 124 124 125 LOGICAL, OPTIONAL, &126 & INTENT(IN) :: ld_calcfrac ! Set TRUE to recalculate the127 ! solar fraction128 129 125 ! Local variables 130 126 REAL(wp), DIMENSION(jpi,jpj) :: z_fvel ! friction velocity … … 136 132 137 133 INTEGER :: ji,jj 134 INTEGER, INTENT(IN) :: kt ! time step 138 135 139 136 ! Set optional arguments to their defaults … … 158 155 zla(:,:) = pla(:,:) 159 156 ENDIF 160 IF ( .NOT. PRESENT(ld_calcfrac) ) THEN161 ll_calcfrac = .FALSE.162 ELSE163 ll_calcfrac = ld_calcfrac164 ENDIF165 157 166 158 ! If not done already, calculate the solar fraction 167 IF ( ll_calcfrac) THEN159 IF ( kt==nit000 ) THEN 168 160 DO jj = 1,jpj 169 161 DO ji = 1, jpi -
branches/2015/dev_MetOffice_merge_2015/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r6008 r6010 80 80 USE lib_mpp ! distributed memory computing 81 81 USE diurnal_bulk ! diurnal bulk SST 82 USE stp_diu ! diurnal bulk SST timestepping if run offline 82 83 #if defined key_iomput 83 84 USE xios ! xIOserver -
branches/2015/dev_MetOffice_merge_2015/NEMOGCM/NEMO/OPA_SRC/step.F90
r6008 r6010 234 234 ! cool skin 235 235 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 236 IF ( ln_diurnal ) THEN 237 IF ( .NOT. ln_blk_core ) THEN 238 CALL ctl_stop("step.f90: diurnal flux processing not implemented"//& 239 & " for direct forcing") 240 ENDIF 241 CALL diurnal_sst_coolskin_step( & 242 qns, taum, rhop(:,:,1), rdt) 243 ENDIF 236 IF ( ln_diurnal ) CALL stp_diurnal( kstp ) 244 237 245 238 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 256 249 ! 257 250 IF( ln_crs ) CALL crs_fld ( kstp ) ! ocean model: online field coarsening & output 258 259 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>260 ! diurnal warm layer261 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<262 IF ( ln_diurnal ) THEN263 IF( kstp == nit000 )THEN264 CALL diurnal_sst_takaya_step( &265 & qsr, qns, taum, rhop(:,:,1), &266 & rdt, ld_calcfrac = .TRUE.)267 ELSE268 CALL diurnal_sst_takaya_step( &269 & qsr, qns, taum, rhop(:,:,1), rdt )270 ENDIF271 ENDIF272 273 251 274 252 #if defined key_top … … 382 360 END SUBROUTINE stp 383 361 384 SUBROUTINE stp_diurnal( kstp )385 INTEGER, INTENT(in) :: kstp ! ocean time-step index386 !!----------------------------------------------------------------------387 !! *** ROUTINE stp ***388 !!389 !! ** Purpose : - Time stepping of diurnal SST model only390 !!391 !! ** Method : -1- Update forcings and data392 !! -2- Update ocean physics393 !! -3- Compute the t and s trends394 !! -4- Update t and s395 !! -5- Compute the momentum trends396 !! -6- Update the horizontal velocity397 !! -7- Compute the diagnostics variables (rd,N2, div,cur,w)398 !! -8- Outputs and diagnostics399 !!----------------------------------------------------------------------400 INTEGER :: jk ! dummy loop indices401 INTEGER :: indic ! error indicator if < 0402 REAL(wp), DIMENSION(jpi,jpj) :: z_fvel_bkginc, z_hflux_bkginc403 !! ---------------------------------------------------------------------404 405 indic = 1 ! reset to no error condition406 407 IF( kstp /= nit000 ) CALL day( kstp ) ! Calendar (day was already called at nit000 in day_init)408 409 CALL iom_setkt( kstp - nit000 + 1, cxios_context ) ! tell iom we are at time step kstp410 IF( ln_crs ) THEN411 CALL iom_setkt( kstp - nit000 + 1, TRIM(cxios_context)//"_crs" ) ! tell iom we are at time step kstp412 ENDIF413 414 CALL sbc ( kstp ) ! Sea Boundary Conditions415 416 ! Cool skin417 IF ( .NOT.ln_diurnal ) CALL ctl_stop( "stp_diurnal: ln_diurnal not set" )418 419 IF ( .NOT. ln_blk_core ) THEN420 CALL ctl_stop("step.f90: diurnal flux processing not implemented"//&421 & " for direct forcing")422 ENDIF423 424 CALL diurnal_sst_coolskin_step( qns, taum, rhop(:,:,1), rdt)425 426 CALL dia_wri( kstp ) ! ocean model: outputs427 428 ! Diurnal warm layer model429 430 IF( kstp == nit000 )THEN431 CALL diurnal_sst_takaya_step( &432 & qsr, qns, taum, rhop(:,:,1), &433 & rdt, ld_calcfrac = .TRUE.)434 ELSE435 CALL diurnal_sst_takaya_step( &436 & qsr, qns, taum, rhop(:,:,1), rdt )437 ENDIF438 439 IF( ln_diaobs ) CALL dia_obs( kstp ) ! obs-minus-model (assimilation) diagnostics (call after dynamics update)440 441 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>442 ! Control and restarts443 !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<444 IF( kstp == nit000 ) CALL iom_close( numror ) ! close input ocean restart file445 IF( lrst_oce ) CALL rst_write ( kstp ) ! write output ocean restart file446 447 IF( nn_timing == 1 .AND. kstp == nit000 ) CALL timing_reset448 449 END SUBROUTINE stp_diurnal450 451 !!======================================================================452 362 END MODULE step
Note: See TracChangeset
for help on using the changeset viewer.