- Timestamp:
- 2017-07-10T12:18:03+02:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2017/dev_r8183_ICEMODEL/NEMOGCM/NEMO/OPA_SRC/BDY/bdydta.F90
r7861 r8306 25 25 USE iom ! IOM library 26 26 USE in_out_manager ! I/O logical units 27 #if defined key_lim2 28 USE ice_2 29 #elif defined key_lim3 27 #if defined key_lim3 30 28 USE ice 31 29 USE limvar ! redistribute ice input into categories … … 50 48 51 49 #if defined key_lim3 52 LOGICAL :: ll_bdylim3 ! determine whether ice input is lim2 (F) or lim3(T) type50 LOGICAL :: ll_bdylim3 ! determine whether ice input is 1cat (F) or Xcat (T) type 53 51 INTEGER :: jfld_hti, jfld_hts, jfld_ai ! indices of ice thickness, snow thickness and concentration in bf structure 54 52 #endif … … 176 174 ENDIF 177 175 178 #if defined key_lim2 179 IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN 180 ilen1(:) = nblen(:) 181 IF( dta%ll_frld ) THEN 182 igrd = 1 183 DO ib = 1, ilen1(igrd) 184 ii = idx_bdy(ib_bdy)%nbi(ib,igrd) 185 ij = idx_bdy(ib_bdy)%nbj(ib,igrd) 186 dta_bdy(ib_bdy)%frld(ib) = frld(ii,ij) * tmask(ii,ij,1) 187 END DO 188 END IF 189 IF( dta%ll_hicif ) THEN 190 igrd = 1 191 DO ib = 1, ilen1(igrd) 192 ii = idx_bdy(ib_bdy)%nbi(ib,igrd) 193 ij = idx_bdy(ib_bdy)%nbj(ib,igrd) 194 dta_bdy(ib_bdy)%hicif(ib) = hicif(ii,ij) * tmask(ii,ij,1) 195 END DO 196 END IF 197 IF( dta%ll_hsnif ) THEN 198 igrd = 1 199 DO ib = 1, ilen1(igrd) 200 ii = idx_bdy(ib_bdy)%nbi(ib,igrd) 201 ij = idx_bdy(ib_bdy)%nbj(ib,igrd) 202 dta_bdy(ib_bdy)%hsnif(ib) = hsnif(ii,ij) * tmask(ii,ij,1) 203 END DO 204 END IF 205 ENDIF 206 #elif defined key_lim3 176 #if defined key_lim3 207 177 IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN 208 178 ilen1(:) = nblen(:) … … 373 343 ENDIF 374 344 #if defined key_lim3 375 IF( .NOT. ll_bdylim3 .AND. cn_ice_lim(ib_bdy) /= 'none' .AND. nn_ice_lim_dta(ib_bdy) == 1 ) THEN ! bdy ice input (case input is lim2 type)345 IF( .NOT. ll_bdylim3 .AND. cn_ice_lim(ib_bdy) /= 'none' .AND. nn_ice_lim_dta(ib_bdy) == 1 ) THEN ! bdy ice input (case input is 1cat) 376 346 CALL lim_var_itd ( bf(jfld_hti)%fnow(:,1,1), bf(jfld_hts)%fnow(:,1,1), bf(jfld_ai)%fnow(:,1,1), & 377 347 & dta_bdy(ib_bdy)%ht_i, dta_bdy(ib_bdy)%ht_s, dta_bdy(ib_bdy)%a_i ) … … 449 419 TYPE(FLD_N) :: bn_tem, bn_sal, bn_u3d, bn_v3d ! 450 420 TYPE(FLD_N) :: bn_ssh, bn_u2d, bn_v2d ! informations about the fields to be read 451 #if defined key_lim2 452 TYPE(FLD_N) :: bn_frld, bn_hicif, bn_hsnif ! 453 #elif defined key_lim3 421 #if defined key_lim3 454 422 TYPE(FLD_N) :: bn_a_i, bn_ht_i, bn_ht_s 455 #endif456 423 NAMELIST/nambdy_dta/ cn_dir, bn_tem, bn_sal, bn_u3d, bn_v3d, bn_ssh, bn_u2d, bn_v2d 457 #if defined key_lim2458 NAMELIST/nambdy_dta/ bn_frld, bn_hicif, bn_hsnif459 #elif defined key_lim3460 424 NAMELIST/nambdy_dta/ bn_a_i, bn_ht_i, bn_ht_s 461 425 #endif … … 475 439 ,nn_dyn3d_dta(ib_bdy) & 476 440 ,nn_tra_dta(ib_bdy) & 477 #if ( defined key_lim2 || defined key_lim3 )441 #if defined key_lim3 478 442 ,nn_ice_lim_dta(ib_bdy) & 479 443 #endif … … 496 460 nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 2 497 461 ENDIF 498 #if ( defined key_lim2 || defined key_lim3 )462 #if defined key_lim3 499 463 IF( cn_ice_lim(ib_bdy) /= 'none' .and. nn_ice_lim_dta(ib_bdy) == 1 ) THEN 500 464 nb_bdy_fld(ib_bdy) = nb_bdy_fld(ib_bdy) + 3 … … 637 601 ENDIF 638 602 639 #if defined key_lim 2603 #if defined key_lim3 640 604 ! sea ice 641 605 IF( nn_ice_lim_dta(ib_bdy) == 1 ) THEN 642 643 IF( dta%ll_frld ) THEN 644 jfld = jfld + 1 645 blf_i(jfld) = bn_frld 646 ibdy(jfld) = ib_bdy 647 igrid(jfld) = 1 648 ilen1(jfld) = nblen(igrid(jfld)) 649 ilen3(jfld) = 1 650 ENDIF 651 652 IF( dta%ll_hicif ) THEN 653 jfld = jfld + 1 654 blf_i(jfld) = bn_hicif 655 ibdy(jfld) = ib_bdy 656 igrid(jfld) = 1 657 ilen1(jfld) = nblen(igrid(jfld)) 658 ilen3(jfld) = 1 659 ENDIF 660 661 IF( dta%ll_hsnif ) THEN 662 jfld = jfld + 1 663 blf_i(jfld) = bn_hsnif 664 ibdy(jfld) = ib_bdy 665 igrid(jfld) = 1 666 ilen1(jfld) = nblen(igrid(jfld)) 667 ilen3(jfld) = 1 668 ENDIF 669 670 ENDIF 671 #elif defined key_lim3 672 ! sea ice 673 IF( nn_ice_lim_dta(ib_bdy) == 1 ) THEN 674 ! Test for types of ice input (lim2 or lim3) 606 ! Test for types of ice input (1cat or Xcat) 675 607 ! Build file name to find dimensions 676 608 clname=TRIM( cn_dir )//TRIM(bn_a_i%clname) … … 689 621 690 622 IF ( zndims == 4 ) THEN 691 ll_bdylim3 = .TRUE. ! lim3input623 ll_bdylim3 = .TRUE. ! Xcat input 692 624 ELSE 693 ll_bdylim3 = .FALSE. ! lim2input625 ll_bdylim3 = .FALSE. ! 1cat input 694 626 ENDIF 695 627 ! End test … … 848 780 ENDIF 849 781 850 #if defined key_lim2 851 IF (cn_ice_lim(ib_bdy) /= 'none') THEN 852 IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN 853 ALLOCATE( dta_bdy(ib_bdy)%frld(nblen(1)) ) 854 ALLOCATE( dta_bdy(ib_bdy)%hicif(nblen(1)) ) 855 ALLOCATE( dta_bdy(ib_bdy)%hsnif(nblen(1)) ) 856 ELSE 857 jfld = jfld + 1 858 dta_bdy(ib_bdy)%frld => bf(jfld)%fnow(:,1,1) 859 jfld = jfld + 1 860 dta_bdy(ib_bdy)%hicif => bf(jfld)%fnow(:,1,1) 861 jfld = jfld + 1 862 dta_bdy(ib_bdy)%hsnif => bf(jfld)%fnow(:,1,1) 863 ENDIF 864 ENDIF 865 #elif defined key_lim3 782 #if defined key_lim3 866 783 IF (cn_ice_lim(ib_bdy) /= 'none') THEN 867 784 IF( nn_ice_lim_dta(ib_bdy) == 0 ) THEN … … 870 787 ALLOCATE( dta_bdy(ib_bdy)%ht_s(nblen(1),jpl) ) 871 788 ELSE 872 IF ( ll_bdylim3 ) THEN ! case input is lim3 type789 IF ( ll_bdylim3 ) THEN ! case input is Xcat 873 790 jfld = jfld + 1 874 791 dta_bdy(ib_bdy)%a_i => bf(jfld)%fnow(:,1,:) … … 877 794 jfld = jfld + 1 878 795 dta_bdy(ib_bdy)%ht_s => bf(jfld)%fnow(:,1,:) 879 ELSE ! case input is lim2 type796 ELSE ! case input is 1cat 880 797 jfld_ai = jfld + 1 881 798 jfld_hti = jfld + 2
Note: See TracChangeset
for help on using the changeset viewer.