Changeset 2216
- Timestamp:
- 2010-10-12T13:36:25+02:00 (13 years ago)
- Location:
- branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r2210 r2216 183 183 #endif 184 184 ! ! surface ocean fluxes computed with CLIO bulk formulea 185 IF( MOD( kt - 1, nn_fsbc ) == 0 ) CALL blk_oce_core( kt,sf, sst_m, ssu_m, ssv_m )185 IF( MOD( kt - 1, nn_fsbc ) == 0 ) CALL blk_oce_core( sf, sst_m, ssu_m, ssv_m ) 186 186 ! 187 187 END SUBROUTINE sbc_blk_core 188 188 189 189 190 SUBROUTINE blk_oce_core( kt,sf, pst, pu, pv )190 SUBROUTINE blk_oce_core( sf, pst, pu, pv ) 191 191 !!--------------------------------------------------------------------- 192 192 !! *** ROUTINE blk_core *** … … 209 209 !! ** Nota : sf has to be a dummy argument for AGRIF on NEC 210 210 !!--------------------------------------------------------------------- 211 INTEGER , INTENT(in) :: kt ! ocean time step212 211 TYPE(fld), INTENT(in), DIMENSION(:) :: sf ! input data 213 212 REAL(wp), INTENT(in), DIMENSION(jpi,jpj) :: pst ! surface temperature [Celcius] … … 263 262 ! ----------------------------------------------------------------------------- ! 264 263 265 IF( ln_dm2dc ) THEN ; qsr(:,:) = sbc_dcy( kt,sf(jp_qsr)%fnow ) ! modify now Qsr to include the diurnal cycle264 IF( ln_dm2dc ) THEN ; qsr(:,:) = sbc_dcy( sf(jp_qsr)%fnow ) ! modify now Qsr to include the diurnal cycle 266 265 ELSE ; qsr(:,:) = sf(jp_qsr)%fnow(:,:) 267 266 ENDIF -
branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC/sbccpl.F90
r2090 r2216 23 23 USE sbc_oce ! Surface boundary condition: ocean fields 24 24 USE sbc_ice ! Surface boundary condition: ice fields 25 USE sbcdcy ! surface boundary condition: diurnal cycle 25 26 USE phycst ! physical constants 26 27 #if defined key_lim3 … … 728 729 IF( srcv(jpr_qsroce)%laction ) qsr(:,:) = frcv(:,:,jpr_qsroce) 729 730 IF( srcv(jpr_qsrmix)%laction ) qsr(:,:) = frcv(:,:,jpr_qsrmix) 731 IF( ln_dm2dc ) qsr(:,:) = sbc_dcy( qsr ) ! modify qsr to include the diurnal cycle 730 732 ! 731 733 ! ! total freshwater fluxes over the ocean (emp, emps) … … 1159 1161 & + palbi (:,:,1) * zicefr(:,:,1) ) ) 1160 1162 END SELECT 1163 IF( ln_dm2dc ) THEN ! modify qsr to include the diurnal cycle 1164 pqsr_tot(:,: ) = sbc_dcy( pqsr_tot(:,: ) ) 1165 pqsr_ice(:,:,1) = sbc_dcy( pqsr_ice(:,:,1) ) 1166 ENDIF 1161 1167 1162 1168 SELECT CASE( TRIM( cn_rcv_dqnsdt ) ) -
branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC/sbcdcy.F90
r2210 r2216 21 21 IMPLICIT NONE 22 22 PRIVATE 23 INTEGER 23 INTEGER, PUBLIC :: nday_qsr ! day when parameters were computed 24 24 REAL(wp), DIMENSION(jpi,jpj) :: raa , rbb , rcc , rab ! parameters used to compute the diurnal cycle 25 25 REAL(wp), DIMENSION(jpi,jpj) :: rtmd, rdawn, rdusk, rscal ! - - - - - … … 34 34 CONTAINS 35 35 36 FUNCTION sbc_dcy( kt,pqsrin ) RESULT( zqsrout )36 FUNCTION sbc_dcy( pqsrin ) RESULT( zqsrout ) 37 37 !!---------------------------------------------------------------------- 38 38 !! *** ROUTINE sbc_dcy *** … … 48 48 !! Part 1: a diurnally forced OGCM. Climate Dynamics 29:6, 575-590. 49 49 !!---------------------------------------------------------------------- 50 INTEGER, INTENT(in ) :: kt ! ocean time-step index51 50 REAL(wp), DIMENSION(jpi,jpj), INTENT(in ) :: pqsrin ! input daily QSR flux 52 51 !! … … 75 74 76 75 ! 77 IF( kt == nit000) THEN ! first time step only76 IF( nday_qsr == -1 ) THEN ! first time step only 78 77 IF(lwp) THEN 79 78 WRITE(numout,*) … … 82 81 WRITE(numout,*) 83 82 ENDIF 84 nday_qsr = 085 83 ! Compute rcc needed to compute the time integral of the diurnal cycle 86 84 rcc(:,:) = zconvrad * glamt(:,:) - rpi … … 140 138 rdawn(:,:) = MOD((rdawn(:,:) + 1.), 1.) 141 139 rdusk(:,:) = MOD((rdusk(:,:) + 1.), 1.) 142 143 140 144 141 ! 2.2 Compute the scalling function: -
branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC/sbcflx.F90
r2210 r2216 126 126 127 127 IF( MOD( kt-1, nn_fsbc ) == 0 ) THEN ! update ocean fluxes at each SBC frequency 128 IF( ln_dm2dc ) THEN ; qsr(:,:) = sbc_dcy( kt,sf(jp_qsr)%fnow ) ! modify now Qsr to include the diurnal cycle128 IF( ln_dm2dc ) THEN ; qsr(:,:) = sbc_dcy( sf(jp_qsr)%fnow ) ! modify now Qsr to include the diurnal cycle 129 129 ELSE ; qsr(:,:) = sf(jp_qsr)%fnow(:,:) 130 130 ENDIF -
branches/dev_r2174_DCY/NEMO/OPA_SRC/SBC/sbcmod.F90
r2188 r2216 18 18 USE sbc_oce ! Surface boundary condition: ocean fields 19 19 USE sbc_ice ! Surface boundary condition: ice fields 20 USE sbcdcy ! surface boundary condition: diurnal cycle 20 21 USE sbcssm ! surface boundary condition: sea-surface mean variables 21 22 USE sbcana ! surface boundary condition: analytical formulation … … 133 134 & CALL ctl_stop( 'sea-ice model requires a bulk formulation or coupled configuration' ) 134 135 136 IF( ln_dm2dc ) nday_qsr = -1 ! initialisation flag 137 135 138 IF( ln_dm2dc .AND. .NOT.( ln_flx .OR. ln_blk_core ) ) & 136 139 & CALL ctl_stop( 'diurnal cycle into qsr field from daily values requires a flux or core-bulk formulation' )
Note: See TracChangeset
for help on using the changeset viewer.