Changeset 3556 for branches/2012
- Timestamp:
- 2012-11-14T18:03:01+01:00 (12 years ago)
- Location:
- branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/OPA_SRC/SBC
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90
r3294 r3556 627 627 INTEGER , INTENT(in), OPTIONAL, DIMENSION(:) :: map ! global-to-local mapping indices 628 628 !! 629 INTEGER :: ipi ! number of i-point sdjf%fdta 629 630 INTEGER :: ipk ! number of vertical levels of sdjf%fdta ( 2D: ipk=1 ; 3D: ipk=jpk ) 630 631 INTEGER :: iw ! index into wgts array 631 632 !!--------------------------------------------------------------------- 632 633 634 ipi = SIZE( sdjf%fnow, 1 ) 633 635 ipk = SIZE( sdjf%fnow, 3 ) 634 636 … … 645 647 SELECT CASE( ipk ) 646 648 CASE(1) 647 IF( sdjf%ln_tint ) THEN ; CALL iom_get( sdjf%num, jpdom_data, sdjf%clvar, sdjf%fdta(:,:,1,2), sdjf%nrec_a(1) ) 648 ELSE ; CALL iom_get( sdjf%num, jpdom_data, sdjf%clvar, sdjf%fnow(:,:,1 ), sdjf%nrec_a(1) ) 649 IF( ipi == jpi ) THEN 650 IF( sdjf%ln_tint ) THEN ; CALL iom_get( sdjf%num, jpdom_data, sdjf%clvar, sdjf%fdta(:,:,1,2), sdjf%nrec_a(1) ) 651 ELSE ; CALL iom_get( sdjf%num, jpdom_data, sdjf%clvar, sdjf%fnow(:,:,1 ), sdjf%nrec_a(1) ) 652 ENDIF 653 ELSE 654 IF( sdjf%ln_tint ) THEN ; CALL iom_get( sdjf%num, jpdom_unknown, sdjf%clvar, sdjf%fdta(:,:,1,2), sdjf%nrec_a(1) ) 655 ELSE ; CALL iom_get( sdjf%num, jpdom_unknown, sdjf%clvar, sdjf%fnow(:,:,1 ), sdjf%nrec_a(1) ) 656 ENDIF 649 657 ENDIF 650 658 CASE DEFAULT -
branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r3294 r3556 29 29 USE fldread ! read input fields 30 30 USE sbc_oce ! Surface boundary condition: ocean fields 31 USE cyclone ! Cyclone 10m wind form trac of cyclone centres 31 32 USE sbcdcy ! surface boundary condition: diurnal cycle 32 33 USE iom ! I/O manager library … … 186 187 187 188 ! ! surface ocean fluxes computed with CLIO bulk formulea 188 IF( MOD( kt - 1, nn_fsbc ) == 0 ) CALL blk_oce_core( sf, sst_m, ssu_m, ssv_m )189 IF( MOD( kt - 1, nn_fsbc ) == 0 ) CALL blk_oce_core( kt, sf, sst_m, ssu_m, ssv_m ) 189 190 190 191 #if defined key_cice … … 204 205 205 206 206 SUBROUTINE blk_oce_core( sf, pst, pu, pv )207 SUBROUTINE blk_oce_core( kt, sf, pst, pu, pv ) 207 208 !!--------------------------------------------------------------------- 208 209 !! *** ROUTINE blk_core *** … … 225 226 !! ** Nota : sf has to be a dummy argument for AGRIF on NEC 226 227 !!--------------------------------------------------------------------- 227 TYPE(fld), INTENT(in), DIMENSION(:) :: sf ! input data 228 REAL(wp) , INTENT(in), DIMENSION(:,:) :: pst ! surface temperature [Celcius] 229 REAL(wp) , INTENT(in), DIMENSION(:,:) :: pu ! surface current at U-point (i-component) [m/s] 230 REAL(wp) , INTENT(in), DIMENSION(:,:) :: pv ! surface current at V-point (j-component) [m/s] 228 INTEGER , INTENT(in ) :: kt ! time step index 229 TYPE(fld), INTENT(inout), DIMENSION(:) :: sf ! input data 230 REAL(wp) , INTENT(in) , DIMENSION(:,:) :: pst ! surface temperature [Celcius] 231 REAL(wp) , INTENT(in) , DIMENSION(:,:) :: pu ! surface current at U-point (i-component) [m/s] 232 REAL(wp) , INTENT(in) , DIMENSION(:,:) :: pv ! surface current at V-point (j-component) [m/s] 231 233 ! 232 234 INTEGER :: ji, jj ! dummy loop indices 233 235 REAL(wp) :: zcoef_qsatw, zztmp ! local variable 234 236 REAL(wp), DIMENSION(:,:), POINTER :: zwnd_i, zwnd_j ! wind speed components at T-point 237 #if defined key_cyclone 238 REAL(wp), DIMENSION(:,:), POINTER :: ztmask_tc ! mask = 1 where TC are added 239 REAL(wp), DIMENSION(:,:), POINTER :: ztcmask_qns ! total non-solar heat flux within TC footprints 240 REAL(wp), DIMENSION(:,:), POINTER :: ztcmask_qnsneg ! negative part of non-solar heat flux within TC footprints 241 #endif 235 242 REAL(wp), DIMENSION(:,:), POINTER :: zqsatw ! specific humidity at pst 236 243 REAL(wp), DIMENSION(:,:), POINTER :: zqlw, zqsb ! long wave and sensible heat fluxes … … 261 268 zwnd_i(:,:) = 0.e0 262 269 zwnd_j(:,:) = 0.e0 270 271 #if defined key_cyclone 272 CALL wrk_alloc( jpi, jpj, ztmask_tc, ztcmask_qns, ztcmask_qnsneg ) 273 # if defined key_vectopt_loop 274 !CDIR COLLAPSE 275 # endif 276 CALL wnd_cyc( kt, zwnd_i, zwnd_j, ztmask_tc ) ! add Manu ! 277 DO jj = 2, jpjm1 278 DO ji = fs_2, fs_jpim1 ! vect. opt. 279 sf(jp_wndi)%fnow(ji,jj,1) = sf(jp_wndi)%fnow(ji,jj,1) + zwnd_i(ji,jj) 280 sf(jp_wndj)%fnow(ji,jj,1) = sf(jp_wndj)%fnow(ji,jj,1) + zwnd_j(ji,jj) 281 END DO 282 END DO 283 #endif 284 263 285 #if defined key_vectopt_loop 264 286 !CDIR COLLAPSE … … 389 411 CALL iom_put( "qns_oce", qns ) ! output downward non solar heat over the ocean 390 412 ! 413 #if defined key_cyclone 414 ztcmask_qns(:,:) = qns(:,:) * ztmask_tc(:,:) 415 ztcmask_qnsneg(:,:) = MIN( qns(:,:) , 0.e0 ) * ztmask_tc(:,:) ! MAX/MIN sur tableau 2D ?? 416 CALL iom_put( "qns_tcmask", ztcmask_qns ) ! output downward non solar heat over the ocean within TC footprints 417 CALL iom_put( "qns_tcneg", ztcmask_qnsneg ) ! output downward non solar heat over the ocean negative part only 418 CALL wrk_dealloc( jpi, jpj, ztmask_tc, ztcmask_qns, ztcmask_qnsneg ) 419 #endif 391 420 IF(ln_ctl) THEN 392 421 CALL prt_ctl(tab2d_1=zqsb , clinfo1=' blk_oce_core: zqsb : ', tab2d_2=zqlw , clinfo2=' zqlw : ')
Note: See TracChangeset
for help on using the changeset viewer.