Changeset 2325
- Timestamp:
- 2010-10-28T10:58:09+02:00 (14 years ago)
- Location:
- branches/nemo_v3_3_beta/NEMOGCM
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/GYRE/EXP00/namelist
r2317 r2325 337 337 !!====================================================================== 338 338 !! nambfr bottom friction 339 !! nambbc bottom temperature boundary condition ("key_trabbc")339 !! nambbc bottom temperature boundary condition 340 340 !! nambbl bottom boundary layer scheme ("key_trabbl") 341 341 !!====================================================================== … … 355 355 &nambbc ! bottom temperature boundary condition 356 356 !----------------------------------------------------------------------- 357 ln_trabbc = .false. ! Apply a geothermal heating at the ocean bottom 357 358 nn_geoflx = 0 ! geothermal heat flux: = 0 no flux 358 359 ! = 1 constant flux -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/GYRE_LOBSTER/EXP00/namelist
r2317 r2325 337 337 !!====================================================================== 338 338 !! nambfr bottom friction 339 !! nambbc bottom temperature boundary condition ("key_trabbc")339 !! nambbc bottom temperature boundary condition 340 340 !! nambbl bottom boundary layer scheme ("key_trabbl") 341 341 !!====================================================================== … … 355 355 &nambbc ! bottom temperature boundary condition 356 356 !----------------------------------------------------------------------- 357 ln_trabbc = .false. ! Apply a geothermal heating at the ocean bottom 357 358 nn_geoflx = 0 ! geothermal heat flux: = 0 no flux 358 359 ! = 1 constant flux -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/1_namelist
r2317 r2325 201 201 ln_qsr_2bd = .false. ! 2 bands light penetration 202 202 ln_qsr_bio = .false. ! bio-model light penetration 203 nn_chldta = 0! RGB : Chl data (=1) or cst value (=0)203 nn_chldta = 1 ! RGB : Chl data (=1) or cst value (=0) 204 204 rn_abs = 0.58 ! RGB & 2 bands: fraction of light (rn_si1) 205 205 rn_si0 = 0.35 ! RGB & 2 bands: shortess depth of extinction … … 348 348 !!====================================================================== 349 349 !! nambfr bottom friction 350 !! nambbc bottom temperature boundary condition ("key_trabbc")350 !! nambbc bottom temperature boundary condition 351 351 !! nambbl bottom boundary layer scheme ("key_trabbl") 352 352 !!====================================================================== … … 366 366 &nambbc ! bottom temperature boundary condition 367 367 !----------------------------------------------------------------------- 368 ln_trabbc = .true. ! Apply a geothermal heating at the ocean bottom 368 369 nn_geoflx = 2 ! geothermal heat flux: = 0 no flux 369 370 ! = 1 constant flux -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/ORCA2_LIM/EXP00/namelist
r2317 r2325 381 381 !!====================================================================== 382 382 !! nambfr bottom friction 383 !! nambbc bottom temperature boundary condition ("key_trabbc")383 !! nambbc bottom temperature boundary condition 384 384 !! nambbl bottom boundary layer scheme ("key_trabbl") 385 385 !!====================================================================== … … 399 399 &nambbc ! bottom temperature boundary condition 400 400 !----------------------------------------------------------------------- 401 ln_trabbc = .true. ! Apply a geothermal heating at the ocean bottom 401 402 nn_geoflx = 2 ! geothermal heat flux: = 0 no flux 402 403 ! = 1 constant flux -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/EXP00/namelist
r2317 r2325 381 381 !!====================================================================== 382 382 !! nambfr bottom friction 383 !! nambbc bottom temperature boundary condition ("key_trabbc")383 !! nambbc bottom temperature boundary condition 384 384 !! nambbl bottom boundary layer scheme ("key_trabbl") 385 385 !!====================================================================== … … 399 399 &nambbc ! bottom temperature boundary condition 400 400 !----------------------------------------------------------------------- 401 ln_trabbc = .true. ! Apply a geothermal heating at the ocean bottom 401 402 nn_geoflx = 2 ! geothermal heat flux: = 0 no flux 402 403 ! = 1 constant flux -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/EXP00/namelist
r2317 r2325 381 381 !!====================================================================== 382 382 !! nambfr bottom friction 383 !! nambbc bottom temperature boundary condition ("key_trabbc")383 !! nambbc bottom temperature boundary condition 384 384 !! nambbl bottom boundary layer scheme ("key_trabbl") 385 385 !!====================================================================== … … 399 399 &nambbc ! bottom temperature boundary condition 400 400 !----------------------------------------------------------------------- 401 ln_trabbc = .false. ! Apply a geothermal heating at the ocean bottom 401 402 nn_geoflx = 2 ! geothermal heat flux: = 0 no flux 402 403 ! = 1 constant flux -
branches/nemo_v3_3_beta/NEMOGCM/CONFIG/POMME/EXP00/namelist
r2317 r2325 382 382 !!====================================================================== 383 383 !! nambfr bottom friction 384 !! nambbc bottom temperature boundary condition ("key_trabbc")385 !! nambbl bottom boundary layer scheme ("key_trabbl _dif","key_trabbl_adv")384 !! nambbc bottom temperature boundary condition 385 !! nambbl bottom boundary layer scheme ("key_trabbl") 386 386 !!====================================================================== 387 387 … … 398 398 &nambbc ! bottom temperature boundary condition 399 399 !----------------------------------------------------------------------- 400 ln_trabbc = .false. ! Apply a geothermal heating at the ocean bottom 400 401 nn_geoflx = 0 ! geothermal heat flux: = 0 no flux 401 402 ! = 1 constant flux -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/TRA/trabbc.F90
r2287 r2325 2 2 !!============================================================================== 3 3 !! *** MODULE trabbc *** 4 !! Ocean active tracers: bottom boundary condition 4 !! Ocean active tracers: bottom boundary condition (geothermal heat flux) 5 5 !!============================================================================== 6 !! History : 8.1 ! 99-10 (G. Madec) original code 7 !! 8.5 ! 02-08 (G. Madec) free form + modules 8 !! 8.5 ! 02-11 (A. Bozec) tra_bbc_init: original code 6 !! History : OPA ! 1999-10 (G. Madec) original code 7 !! NEMO 1.0 ! 2002-08 (G. Madec) free form + modules 8 !! - ! 2002-11 (A. Bozec) tra_bbc_init: original code 9 !! 3.3 ! 2010-10 (G. Madec) dynamical allocation + suppression of key_trabbc 9 10 !!---------------------------------------------------------------------- 10 #if defined key_trabbc || defined key_esopa 11 !!---------------------------------------------------------------------- 12 !! 'key_trabbc' geothermal heat flux 13 !!---------------------------------------------------------------------- 11 14 12 !! tra_bbc : update the tracer trend at ocean bottom 15 13 !! tra_bbc_init : initialization of geothermal heat flux trend … … 29 27 PUBLIC tra_bbc_init ! routine called by opa.F90 30 28 31 !! to be transfert in the namelist ???! 32 LOGICAL, PUBLIC, PARAMETER :: lk_trabbc = .TRUE. !: bbc flag 29 ! !!* Namelist nambbc: bottom boundary condition * 30 LOGICAL, PUBLIC :: ln_trabbc = .FALSE. !: Geothermal heat flux flag 31 INTEGER :: nn_geoflx = 1 ! Geothermal flux (=1:constant flux, =2:read in file ) 32 REAL(wp) :: rn_geoflx_cst = 86.4e-3_wp ! Constant value of geothermal heat flux 33 33 34 ! !!* Namelist nambbc: bottom boundary condition * 35 INTEGER :: nn_geoflx = 1 ! Geothermal flux (0:no flux, 1:constant flux, 2:read in file ) 36 REAL(wp) :: rn_geoflx_cst = 86.4e-3 ! Constant value of geothermal heat flux 37 38 INTEGER , DIMENSION(jpi,jpj) :: nbotlevt ! ocean bottom level index at T-pt 39 REAL(wp), PUBLIC, DIMENSION(jpi,jpj) :: qgh_trd0 ! geothermal heating trend 34 INTEGER , DIMENSION(:,:), ALLOCATABLE :: nbotlevt ! ocean bottom level index at T-pt 35 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: qgh_trd0 ! geothermal heating trend 40 36 41 37 !! * Substitutions … … 43 39 !!---------------------------------------------------------------------- 44 40 !! NEMO/OPA 3.3 , NEMO Consortium (2010) 45 !! $Id $46 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)41 !! $Id $ 42 !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt) 47 43 !!---------------------------------------------------------------------- 48 49 44 CONTAINS 50 45 … … 76 71 INTEGER :: ji, jj, ik ! dummy loop indices 77 72 REAL(wp) :: zqgh_trd ! geothermal heat flux trend 78 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrdt , ztrds73 REAL(wp), DIMENSION(:,:,:), ALLOCATABLE :: ztrdt 79 74 !!---------------------------------------------------------------------- 80 75 81 76 IF( l_trdtra ) THEN ! Save ta and sa trends 82 77 ALLOCATE( ztrdt(jpi,jpj,jpk) ) ; ztrdt(:,:,:) = tsa(:,:,:,jp_tem) 83 ALLOCATE( ztrds(jpi,jpj,jpk) ) ; ztrds(:,:,:) = 0.84 78 ENDIF 85 79 86 ! Add the geothermal heat flux trend on temperature 87 88 SELECT CASE ( nn_geoflx ) 89 ! 90 CASE ( 1:2 ) ! geothermal heat flux 80 ! ! Add the geothermal heat flux trend on temperature 91 81 #if defined key_vectopt_loop 92 93 82 DO jj = 1, 1 83 DO ji = jpi+2, jpij-jpi-1 ! vector opt. (forced unrolling) 94 84 #else 95 96 85 DO jj = 2, jpjm1 86 DO ji = 2, jpim1 97 87 #endif 98 ik = nbotlevt(ji,jj) 99 zqgh_trd = ro0cpr * qgh_trd0(ji,jj) / fse3t(ji,jj,ik) 100 tsa(ji,jj,ik,jp_tem) = tsa(ji,jj,ik,jp_tem) + zqgh_trd 101 END DO 88 ik = nbotlevt(ji,jj) 89 zqgh_trd = qgh_trd0(ji,jj) / fse3t(ji,jj,ik) 90 tsa(ji,jj,ik,jp_tem) = tsa(ji,jj,ik,jp_tem) + zqgh_trd 102 91 END DO 103 END SELECT92 END DO 104 93 105 94 IF( l_trdtra ) THEN ! Save the geothermal heat flux trend for diagnostics 106 95 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) - ztrdt(:,:,:) 107 96 CALL trd_tra( kt, 'TRA', jp_tem, jptra_trd_bbc, ztrdt ) 108 CALL trd_tra( kt, 'TRA', jp_sal, jptra_trd_bbc, ztrds ) 109 DEALLOCATE( ztrdt ) ; DEALLOCATE( ztrds ) 97 DEALLOCATE( ztrdt ) 110 98 ENDIF 111 99 ! … … 136 124 INTEGER :: inum ! temporary logical unit 137 125 !! 138 NAMELIST/nambbc/ nn_geoflx, rn_geoflx_cst126 NAMELIST/nambbc/ln_trabbc, nn_geoflx, rn_geoflx_cst 139 127 !!---------------------------------------------------------------------- 140 128 … … 142 130 READ ( numnam, nambbc ) 143 131 144 IF(lwp) THEN ! Control print132 IF(lwp) THEN ! Control print 145 133 WRITE(numout,*) 146 WRITE(numout,*) 'tra_bbc : temperature Bottom Boundary Condition (bbc), Geothermal heatflux'134 WRITE(numout,*) 'tra_bbc : Bottom Boundary Condition (bbc), apply a Geothermal heating' 147 135 WRITE(numout,*) '~~~~~~~ ' 148 136 WRITE(numout,*) ' Namelist nambbc : set bbc parameters' 149 WRITE(numout,*) ' Geothermal flux nn_geoflx = ', nn_geoflx 150 WRITE(numout,*) ' Constant geothermal flux rn_geoflx_cst = ', rn_geoflx_cst 137 WRITE(numout,*) ' Apply a geothermal heating at ocean bottom ln_trabbc = ', ln_trabbc 138 WRITE(numout,*) ' type of geothermal flux nn_geoflx = ', nn_geoflx 139 WRITE(numout,*) ' Constant geothermal flux value rn_geoflx_cst = ', rn_geoflx_cst 151 140 WRITE(numout,*) 152 141 ENDIF 153 142 154 ! ! level of the ocean bottom at T-point 155 DO jj = 1, jpj 156 DO ji = 1, jpi 157 nbotlevt(ji,jj) = MAX( mbathy(ji,jj)-1, 1 ) 143 IF( ln_trabbc ) THEN !== geothermal heating ==! 144 ! 145 ALLOCATE( nbotlevt(jpi,jpj) ) ! allocation 146 ALLOCATE( qgh_trd0(jpi,jpj) ) 147 ! 148 DO jj = 1, jpj ! level of the ocean bottom at T-point 149 DO ji = 1, jpi 150 nbotlevt(ji,jj) = MAX( mbathy(ji,jj)-1, 1 ) 151 END DO 158 152 END DO 159 END DO160 161 SELECT CASE ( nn_geoflx ) ! initialization of geothermal heat flux162 !163 CASE ( 0 ) ! no geothermal heat flux164 IF(lwp) WRITE(numout,*) ' *** no geothermal heat flux'165 153 ! 166 CASE ( 1 ) ! constant flux 167 IF(lwp) WRITE(numout,*) ' *** constant heat flux = ', rn_geoflx_cst 154 SELECT CASE ( nn_geoflx ) ! geothermal heat flux / (rauO * Cp) 168 155 ! 169 qgh_trd0(:,:) = rn_geoflx_cst 156 CASE ( 1 ) !* constant flux 157 IF(lwp) WRITE(numout,*) ' *** constant heat flux = ', rn_geoflx_cst 158 qgh_trd0(:,:) = ro0cpr * rn_geoflx_cst 159 ! 160 CASE ( 2 ) !* variable geothermal heat flux : read the geothermal fluxes in mW/m2 161 IF(lwp) WRITE(numout,*) ' *** variable geothermal heat flux' 162 CALL iom_open ( 'geothermal_heating.nc', inum ) 163 CALL iom_get ( inum, jpdom_data, 'heatflow', qgh_trd0 ) 164 CALL iom_close( inum ) 165 qgh_trd0(:,:) = ro0cpr * qgh_trd0(:,:) * 1.e-3 ! conversion in W/m2 166 ! 167 CASE DEFAULT 168 WRITE(ctmp1,*) ' bad flag value for nn_geoflx = ', nn_geoflx 169 CALL ctl_stop( ctmp1 ) 170 ! 171 END SELECT 170 172 ! 171 CASE ( 2 ) ! variable geothermal heat flux : read the geothermal fluxes in mW/m2 172 IF(lwp) WRITE(numout,*) ' *** variable geothermal heat flux' 173 CALL iom_open ( 'geothermal_heating.nc', inum ) 174 CALL iom_get ( inum, jpdom_data, 'heatflow', qgh_trd0 ) 175 CALL iom_close( inum ) 176 ! 177 qgh_trd0(:,:) = qgh_trd0(:,:) * 1.e-3 ! conversion in W/m2 178 ! 179 CASE DEFAULT 180 WRITE(ctmp1,*) ' bad flag value for nn_geoflx = ', nn_geoflx 181 CALL ctl_stop( ctmp1 ) 182 ! 183 END SELECT 173 ELSE 174 IF(lwp) WRITE(numout,*) ' *** no geothermal heat flux' 175 ENDIF 184 176 ! 185 177 END SUBROUTINE tra_bbc_init 186 178 187 #else188 !!----------------------------------------------------------------------189 !! Default option Empty module190 !!----------------------------------------------------------------------191 LOGICAL, PUBLIC, PARAMETER :: lk_trabbc = .FALSE. !: bbc flag192 CONTAINS193 SUBROUTINE tra_bbc( kt ) ! Empty routine194 WRITE(*,*) 'tra_bbc: You should not have seen this print! error?', kt195 END SUBROUTINE tra_bbc196 SUBROUTINE tra_bbc_init ! Empty routine197 END SUBROUTINE tra_bbc_init198 #endif199 200 179 !!====================================================================== 201 180 END MODULE trabbc -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/opa.F90
r2303 r2325 288 288 ! ! Active tracers 289 289 CALL tra_qsr_init ! penetrative solar radiation qsr 290 IF( lk_trabbc )CALL tra_bbc_init ! bottom heat flux290 CALL tra_bbc_init ! bottom heat flux 291 291 IF( lk_trabbl ) CALL tra_bbl_init ! advective (and/or diffusive) bottom boundary layer scheme 292 292 IF( lk_tradmp ) CALL tra_dmp_init ! internal damping trends -
branches/nemo_v3_3_beta/NEMOGCM/NEMO/OPA_SRC/step.F90
r2305 r2325 191 191 CALL tra_sbc ( kstp ) ! surface boundary condition 192 192 IF( ln_traqsr ) CALL tra_qsr ( kstp ) ! penetrative solar radiation qsr 193 IF( l k_trabbc ) CALL tra_bbc ( kstp ) ! bottom heat flux193 IF( ln_trabbc ) CALL tra_bbc ( kstp ) ! bottom heat flux 194 194 IF( lk_trabbl ) CALL tra_bbl ( kstp ) ! advective (and/or diffusive) bottom boundary layer scheme 195 195 IF( lk_tradmp ) CALL tra_dmp ( kstp ) ! internal damping trends
Note: See TracChangeset
for help on using the changeset viewer.