- Timestamp:
- 2020-04-08T18:54:44+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/r4.0-HEAD_r12713_clem_dan_fixcpl/src/OCE/BDY/bdydta.F90
r12639 r12720 43 43 PUBLIC bdy_dta_init ! routine called by nemogcm.F90 44 44 45 INTEGER , PARAMETER :: jpbdyfld = 1 6! maximum number of files to read45 INTEGER , PARAMETER :: jpbdyfld = 17 ! maximum number of files to read 46 46 INTEGER , PARAMETER :: jp_bdyssh = 1 ! 47 47 INTEGER , PARAMETER :: jp_bdyu2d = 2 ! … … 60 60 INTEGER , PARAMETER :: jp_bdyaip = 15 ! 61 61 INTEGER , PARAMETER :: jp_bdyhip = 16 ! 62 INTEGER , PARAMETER :: jp_bdyhil = 17 ! 62 63 #if ! defined key_si3 63 64 INTEGER , PARAMETER :: jpl = 1 … … 189 190 dta_bdy(jbdy)%aip(ib,jl) = a_ip(ii,ij,jl) * tmask(ii,ij,1) 190 191 dta_bdy(jbdy)%hip(ib,jl) = h_ip(ii,ij,jl) * tmask(ii,ij,1) 192 dta_bdy(jbdy)%hil(ib,jl) = h_il(ii,ij,jl) * tmask(ii,ij,1) 191 193 END DO 192 194 END DO … … 294 296 & bf_alias(jp_bdya_i)%fnow(:,1,:) ! ( a_ip = rice_apnd * a_i ) 295 297 IF( TRIM(bf_alias(jp_bdyhip)%clrootname) == 'NOT USED' ) bf_alias(jp_bdyhip)%fnow(:,1,:) = rice_hpnd(jbdy) 298 IF( TRIM(bf_alias(jp_bdyhil)%clrootname) == 'NOT USED' ) bf_alias(jp_bdyhil)%fnow(:,1,:) = rice_hlid(jbdy) 296 299 297 300 ! if T_i is read and not T_su, set T_su = T_i … … 318 321 bf_alias(jp_bdyaip)%fnow(:,1,:) = 0._wp 319 322 bf_alias(jp_bdyhip)%fnow(:,1,:) = 0._wp 323 bf_alias(jp_bdyhil)%fnow(:,1,:) = 0._wp 320 324 ENDIF 321 325 … … 323 327 ipl = SIZE(bf_alias(jp_bdya_i)%fnow, 3) 324 328 IF( ipl /= jpl ) THEN ! ice: convert N-cat fields (input) into jpl-cat (output) 325 CALL ice_var_itd( bf_alias(jp_bdyh_i)%fnow(:,1,:), bf_alias(jp_bdyh_s)%fnow(:,1,:), bf_alias(jp_bdya_i)%fnow(:,1,:), & 326 & dta_alias%h_i , dta_alias%h_s , dta_alias%a_i , & 327 & bf_alias(jp_bdyt_i)%fnow(:,1,:), bf_alias(jp_bdyt_s)%fnow(:,1,:), & 328 & bf_alias(jp_bdytsu)%fnow(:,1,:), bf_alias(jp_bdys_i)%fnow(:,1,:), & 329 & bf_alias(jp_bdyaip)%fnow(:,1,:), bf_alias(jp_bdyhip)%fnow(:,1,:), &330 & dta_alias%t_i , dta_alias%t_s , & 331 & dta_alias%tsu , dta_alias%s_i , & 332 & dta_alias%aip , dta_alias%hip )329 CALL ice_var_itd( bf_alias(jp_bdyh_i)%fnow(:,1,:), bf_alias(jp_bdyh_s)%fnow(:,1,:), bf_alias(jp_bdya_i)%fnow(:,1,:), & ! in 330 & dta_alias%h_i , dta_alias%h_s , dta_alias%a_i , & ! out 331 & bf_alias(jp_bdyt_i)%fnow(:,1,:), bf_alias(jp_bdyt_s)%fnow(:,1,:), & ! in (optional) 332 & bf_alias(jp_bdytsu)%fnow(:,1,:), bf_alias(jp_bdys_i)%fnow(:,1,:), & ! in - 333 & bf_alias(jp_bdyaip)%fnow(:,1,:), bf_alias(jp_bdyhip)%fnow(:,1,:), bf_alias(jp_bdyhil)%fnow(:,1,:), & ! in - 334 & dta_alias%t_i , dta_alias%t_s , & ! out - 335 & dta_alias%tsu , dta_alias%s_i , & ! out - 336 & dta_alias%aip , dta_alias%hip , dta_alias%hil ) ! out - 333 337 ENDIF 334 338 ENDIF … … 377 381 ! ! =F => baroclinic velocities in 3D boundary data 378 382 LOGICAL :: ln_zinterp ! =T => requires a vertical interpolation of the bdydta 379 REAL(wp) :: rn_ice_tem, rn_ice_sal, rn_ice_age, rn_ice_apnd, rn_ice_hpnd 383 REAL(wp) :: rn_ice_tem, rn_ice_sal, rn_ice_age, rn_ice_apnd, rn_ice_hpnd, rn_ice_hlid 380 384 INTEGER :: ipk,ipl ! 381 385 INTEGER :: idvar ! variable ID … … 389 393 TYPE(FLD_N), DIMENSION(1), TARGET :: bn_tem, bn_sal, bn_u3d, bn_v3d ! must be an array to be used with fld_fill 390 394 TYPE(FLD_N), DIMENSION(1), TARGET :: bn_ssh, bn_u2d, bn_v2d ! informations about the fields to be read 391 TYPE(FLD_N), DIMENSION(1), TARGET :: bn_a_i, bn_h_i, bn_h_s, bn_t_i, bn_t_s, bn_tsu, bn_s_i, bn_aip, bn_hip 395 TYPE(FLD_N), DIMENSION(1), TARGET :: bn_a_i, bn_h_i, bn_h_s, bn_t_i, bn_t_s, bn_tsu, bn_s_i, bn_aip, bn_hip, bn_hil 392 396 TYPE(FLD_N), DIMENSION(:), POINTER :: bn_alias ! must be an array to be used with fld_fill 393 397 TYPE(FLD ), DIMENSION(:), POINTER :: bf_alias 394 398 ! 395 399 NAMELIST/nambdy_dta/ cn_dir, bn_tem, bn_sal, bn_u3d, bn_v3d, bn_ssh, bn_u2d, bn_v2d 396 NAMELIST/nambdy_dta/ bn_a_i, bn_h_i, bn_h_s, bn_t_i, bn_t_s, bn_tsu, bn_s_i, bn_aip, bn_hip 397 NAMELIST/nambdy_dta/ rn_ice_tem, rn_ice_sal, rn_ice_age, rn_ice_apnd, rn_ice_hpnd 400 NAMELIST/nambdy_dta/ bn_a_i, bn_h_i, bn_h_s, bn_t_i, bn_t_s, bn_tsu, bn_s_i, bn_aip, bn_hip, bn_hil 401 NAMELIST/nambdy_dta/ rn_ice_tem, rn_ice_sal, rn_ice_age, rn_ice_apnd, rn_ice_hpnd, rn_ice_hlid 398 402 NAMELIST/nambdy_dta/ ln_full_vel, ln_zinterp 399 403 !!--------------------------------------------------------------------------- … … 452 456 #if defined key_si3 453 457 IF( .NOT.ln_pnd ) THEN 454 rn_ice_apnd = 0. ; rn_ice_hpnd = 0. 455 CALL ctl_warn( 'rn_ice_apnd & rn_ice_hpnd = 0 when no ponds' )458 rn_ice_apnd = 0. ; rn_ice_hpnd = 0. ; rn_ice_hlid = 0. 459 CALL ctl_warn( 'rn_ice_apnd & rn_ice_hpnd = 0 & rn_ice_hlid = 0 when no ponds' ) 456 460 ENDIF 457 461 #endif … … 463 467 rice_apnd(jbdy) = rn_ice_apnd 464 468 rice_hpnd(jbdy) = rn_ice_hpnd 465 469 rice_hlid(jbdy) = rn_ice_hlid 470 466 471 467 472 DO jfld = 1, jpbdyfld … … 562 567 IF( jfld == jp_bdya_i .OR. jfld == jp_bdyh_i .OR. jfld == jp_bdyh_s .OR. & 563 568 & jfld == jp_bdyt_i .OR. jfld == jp_bdyt_s .OR. jfld == jp_bdytsu .OR. & 564 & jfld == jp_bdys_i .OR. jfld == jp_bdyaip .OR. jfld == jp_bdyhip 569 & jfld == jp_bdys_i .OR. jfld == jp_bdyaip .OR. jfld == jp_bdyhip .OR. jfld == jp_bdyhil ) THEN 565 570 igrd = 1 ! T point 566 571 ipk = ipl ! jpl-cat data … … 613 618 bf_alias => bf(jp_bdyhip,jbdy:jbdy) ! alias for hip structure of bdy number jbdy 614 619 bn_alias => bn_hip ! alias for hip structure of nambdy_dta 620 ENDIF 621 IF( jfld == jp_bdyhil ) THEN 622 cl3 = 'hil' 623 bf_alias => bf(jp_bdyhil,jbdy:jbdy) ! alias for hil structure of bdy number jbdy 624 bn_alias => bn_hil ! alias for hil structure of nambdy_dta 615 625 ENDIF 616 626 … … 682 692 ENDIF 683 693 ENDIF 694 IF( jfld == jp_bdyhil ) THEN 695 IF( ipk == jpl ) THEN ; dta_bdy(jbdy)%hil => bf_alias(1)%fnow(:,1,:) 696 ELSE ; ALLOCATE( dta_bdy(jbdy)%hil(iszdim,jpl) ) 697 ENDIF 698 ENDIF 684 699 ENDIF 685 700
Note: See TracChangeset
for help on using the changeset viewer.