Changeset 8561
- Timestamp:
- 2017-09-22T17:45:41+02:00 (7 years ago)
- Location:
- branches/UKMO/AMM15_v3_6_STABLE_package/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 5 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/AMM15_v3_6_STABLE_package/NEMOGCM/NEMO/OPA_SRC/DIA/dia25h.F90
r8059 r8561 20 20 USE zdf_oce, ONLY: en 21 21 #endif 22 USE diatmb 22 23 23 24 IMPLICIT NONE … … 30 31 !! * variables for calculating 25-hourly means 31 32 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: tn_25h , sn_25h, rinsitu_t_25h 32 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:) :: sshn_25h 33 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:) :: sshn_25h, insitu_bot_25h, temp_bot_25h 33 34 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: un_25h , vn_25h , wn_25h 34 35 REAL(wp),SAVE, ALLOCATABLE, DIMENSION(:,:,:) :: avt_25h , avm_25h … … 63 64 INTEGER :: ios ! Local integer output status for namelist read 64 65 INTEGER :: ierror ! Local integer for memory allocation 66 REAL(wp), DIMENSION(jpi,jpj,3) :: zwtmb ! temporary workspace 65 67 ! 66 68 NAMELIST/nam_dia25h/ ln_dia25h … … 99 101 CALL ctl_stop( 'dia_25h: unable to allocate rinsitu_t_25h' ) ; RETURN 100 102 ENDIF 103 ALLOCATE( insitu_bot_25h(jpi,jpj), STAT=ierror ) 104 IF( ierror > 0 ) THEN 105 CALL ctl_stop( 'dia_25h: unable to allocate insitu_bot_25h' ) ; RETURN 106 ENDIF 107 ALLOCATE( temp_bot_25h(jpi,jpj), STAT=ierror ) 108 IF( ierror > 0 ) THEN 109 CALL ctl_stop( 'dia_25h: unable to allocate temp_bot_25h' ) ; RETURN 110 ENDIF 101 111 ALLOCATE( un_25h(jpi,jpj,jpk), STAT=ierror ) 102 112 IF( ierror > 0 ) THEN … … 143 153 CALL theta2t 144 154 rinsitu_t_25h(:,:,:) = rinsitu_t(:,:,:) 155 CALL dia_calctmb( rinsitu_t(:,:,:),zwtmb ) 156 insitu_bot_25h(:,:) = zwtmb(:,:,3) 157 CALL dia_calctmb( tn_25h(:,:,:),zwtmb ) 158 temp_bot_25h(:,:) = zwtmb(:,:,3) 145 159 sshn_25h(:,:) = sshb(:,:) 146 160 un_25h(:,:,:) = ub(:,:,:) … … 237 251 CALL theta2t 238 252 rinsitu_t_25h(:,:,:) = rinsitu_t_25h(:,:,:) + rinsitu_t(:,:,:) 253 CALL dia_calctmb( rinsitu_t(:,:,:),zwtmb ) 254 insitu_bot_25h(:,:) = insitu_bot_25h(:,:) + zwtmb(:,:,3) 255 zw3d(:,:,:) = tsn(:,:,:,jp_tem) 256 CALL dia_calctmb( zw3d,zwtmb ) 257 temp_bot_25h(:,:) = temp_bot_25h(:,:) + zwtmb(:,:,3) 239 258 sshn_25h(:,:) = sshn_25h(:,:) + sshn (:,:) 240 259 un_25h(:,:,:) = un_25h(:,:,:) + un(:,:,:) … … 268 287 sn_25h(:,:,:) = sn_25h(:,:,:) / 25.0_wp 269 288 rinsitu_t_25h(:,:,:) = rinsitu_t_25h(:,:,:) / 25.0_wp 289 insitu_bot_25h(:,:) = insitu_bot_25h(:,:) / 25.0_wp 290 temp_bot_25h(:,:) = temp_bot_25h(:,:) /25.0_wp 270 291 sshn_25h(:,:) = sshn_25h(:,:) / 25.0_wp 271 292 un_25h(:,:,:) = un_25h(:,:,:) / 25.0_wp … … 289 310 zw3d(:,:,:) = rinsitu_t_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 290 311 CALL iom_put("tempis25h", zw3d) ! in-situ temperature 312 zw2d(:,:) = insitu_bot_25h(:,:)*tmask(:,:,1) + zmdi*(1.0-tmask(:,:,1)) 313 CALL iom_put("tempisbot25h", zw2d) ! bottom in-situ temperature 314 zw2d(:,:) = temp_bot_25h(:,:)*tmask(:,:,1) + zmdi*(1.0-tmask(:,:,1)) 315 CALL iom_put("temperbot25h",zw2d) ! bottom potential temperature 291 316 zw3d(:,:,:) = sn_25h(:,:,:)*tmask(:,:,:) + zmdi*(1.0-tmask(:,:,:)) 292 317 CALL iom_put( "salin25h", zw3d ) ! salinity … … 321 346 CALL theta2t 322 347 rinsitu_t_25h(:,:,:) = rinsitu_t(:,:,:) 348 CALL dia_calctmb( rinsitu_t(:,:,:),zwtmb ) 349 insitu_bot_25h(:,:) = zwtmb(:,:,3) 350 CALL dia_calctmb( tn_25h(:,:,:),zwtmb) 351 temp_bot_25h(:,:) = zwtmb(:,:,3) 323 352 sshn_25h(:,:) = sshn (:,:) 324 353 un_25h(:,:,:) = un(:,:,:) -
branches/UKMO/AMM15_v3_6_STABLE_package/NEMOGCM/NEMO/OPA_SRC/DIA/diatmb.F90
r8059 r8561 19 19 PUBLIC dia_tmb_init ! routine called by nemogcm.F90 20 20 PUBLIC dia_tmb ! routine called by diawri.F90 21 PUBLIC dia_calctmb ! routine called by dia25h.F90 21 22 22 23 !!---------------------------------------------------------------------- -
branches/UKMO/AMM15_v3_6_STABLE_package/NEMOGCM/NEMO/OPA_SRC/DIA/diawri.F90
r8059 r8561 46 46 USE diatmb ! Top,middle,bottom output 47 47 USE dia25h ! 25h Mean output 48 USE diaopfoam ! Diaopfoam output 48 49 USE iom 49 50 USE ioipsl … … 401 402 IF (ln_dia25h) THEN 402 403 CALL dia_25h( kt ) 404 ENDIF 405 IF (ln_diaopfoam) THEN 406 CALL dia_diaopfoam 403 407 ENDIF 404 408 ! -
branches/UKMO/AMM15_v3_6_STABLE_package/NEMOGCM/NEMO/OPA_SRC/nemogcm.F90
r8059 r8561 87 87 USE diatmb ! Top,middle,bottom output 88 88 USE dia25h ! 25h mean output 89 USE diaopfoam ! FOAM operational output 90 USE diurnal_bulk ! diurnal bulk SST 89 91 90 92 IMPLICIT NONE … … 405 407 CALL istate_init ! ocean initial state (Dynamics and tracers) 406 408 409 CALL diurnal_sst_bulk_init ! diurnal sst 410 IF ( ln_diurnal ) CALL diurnal_sst_coolskin_init ! cool skin 411 407 412 IF( lk_tide ) CALL tide_init( nit000 ) ! Initialisation of the tidal harmonics 408 413 … … 479 484 CALL dia_tmb_init ! TMB outputs 480 485 CALL dia_25h_init ! 25h mean outputs 486 CALL dia_diaopfoam_init ! FOAM operational output 481 487 ! 482 488 END SUBROUTINE nemo_init -
branches/UKMO/AMM15_v3_6_STABLE_package/NEMOGCM/NEMO/OPA_SRC/step.F90
r8059 r8561 225 225 ENDIF 226 226 227 ! Cool skin 228 IF ( ln_diurnal ) THEN 229 IF ( ln_blk_core ) THEN 230 CALL diurnal_sst_coolskin_step( & 231 qns(:,:)+(rn_abs*qsr(:,:)), taum, rhop(:,:,1), rdt) 232 ELSE 233 CALL diurnal_sst_coolskin_step( & 234 qns, taum, rhop(:,:,1), rdt) 235 ENDIF 236 ENDIF 237 227 238 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 228 239 ! diagnostics and outputs (ua, va, tsa used as workspace) … … 237 248 ! 238 249 IF( ln_crs ) CALL crs_fld( kstp ) ! ocean model: online field coarsening & output 250 251 !Diurnal warm layer model 252 IF ( ln_diurnal ) THEN 253 IF ( ln_blk_core ) THEN 254 IF( kstp == nit000 )THEN 255 CALL diurnal_sst_takaya_step( & 256 & qsr(:,:)-(rn_abs*qsr(:,:)), qns(:,:)+(rn_abs*qsr(:,:)), & 257 & taum, rhop(:,:,1), & 258 & rdt, ld_calcfrac = .TRUE.) 259 ELSE 260 CALL diurnal_sst_takaya_step( & 261 & qsr(:,:)-(rn_abs*qsr(:,:)), qns(:,:)+(rn_abs*qsr(:,:)), & 262 & taum, rhop(:,:,1), rdt ) 263 ENDIF 264 ELSE 265 IF( kstp == nit000 )THEN 266 CALL diurnal_sst_takaya_step( & 267 & qsr, qns, taum, rhop(:,:,1), & 268 & rdt, ld_calcfrac = .TRUE.) 269 ELSE 270 CALL diurnal_sst_takaya_step( & 271 & qsr, qns, taum, rhop(:,:,1), rdt ) 272 ENDIF 273 ENDIF 274 ENDIF 239 275 240 276 #if defined key_top -
branches/UKMO/AMM15_v3_6_STABLE_package/NEMOGCM/NEMO/OPA_SRC/step_oce.F90
r8059 r8561 112 112 USE diaobs ! Observation operator 113 113 114 USE diurnal_bulk ! diurnal SST bulk routines (diurnal_sst_takaya routine) 115 USE cool_skin ! diurnal cool skin correction (diurnal_sst_coolskin routine) 116 114 117 USE timing ! Timing 115 118
Note: See TracChangeset
for help on using the changeset viewer.