- 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/ASM/asminc.F90
r8030 r8306 35 35 USE in_out_manager ! I/O manager 36 36 USE lib_mpp ! MPP library 37 #if defined key_lim 238 USE ice _2 ! LIM237 #if defined key_lim3 38 USE ice, ONLY: htm_i, at_i, pfrld, phicif 39 39 #endif 40 40 USE sbc_oce ! Surface boundary condition variables. … … 809 809 INTEGER :: it 810 810 REAL(wp) :: zincwgt ! IAU weight for current time step 811 #if defined key_lim 2811 #if defined key_lim3 812 812 REAL(wp), DIMENSION(jpi,jpj) :: zofrld, zohicif, zseaicendg, zhicifinc ! LIM 813 813 REAL(wp) :: zhicifmin = 0.5_wp ! ice minimum depth in metres … … 831 831 ENDIF 832 832 ! 833 ! Sea-ice : LIM-3 case (to add) 834 ! 835 #if defined key_lim2 836 ! Sea-ice : LIM-2 case 837 zofrld (:,:) = frld(:,:) 838 zohicif(:,:) = hicif(:,:) 839 ! 840 frld = MIN( MAX( frld (:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 841 pfrld = MIN( MAX( pfrld(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 842 fr_i(:,:) = 1.0_wp - frld(:,:) ! adjust ice fraction 843 ! 844 zseaicendg(:,:) = zofrld(:,:) - frld(:,:) ! find out actual sea ice nudge applied 833 ! Sea-ice : LIM-3 case 834 ! 835 #if defined key_lim3 836 zofrld (:,:) = 1._wp - at_i(:,:) 837 zohicif(:,:) = htm_i(:,:) 838 ! 839 at_i(:,:) = 1. - MIN( MAX( 1.-at_i(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 840 pfrld = MIN( MAX( pfrld(:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 841 fr_i(:,:) = at_i(:,:) ! adjust ice fraction 842 ! 843 zseaicendg(:,:) = zofrld(:,:) - (1. - at_i(:,:)) ! find out actual sea ice nudge applied 845 844 ! 846 845 ! Nudge sea ice depth to bring it up to a required minimum depth 847 WHERE( zseaicendg(:,:) > 0.0_wp .AND. h icif(:,:) < zhicifmin )848 zhicifinc(:,:) = (zhicifmin - h icif(:,:)) * zincwgt846 WHERE( zseaicendg(:,:) > 0.0_wp .AND. htm_i(:,:) < zhicifmin ) 847 zhicifinc(:,:) = (zhicifmin - htm_i(:,:)) * zincwgt 849 848 ELSEWHERE 850 849 zhicifinc(:,:) = 0.0_wp … … 852 851 ! 853 852 ! nudge ice depth 854 h icif (:,:) = hicif(:,:) + zhicifinc(:,:)853 htm_i (:,:) = htm_i (:,:) + zhicifinc(:,:) 855 854 phicif(:,:) = phicif(:,:) + zhicifinc(:,:) 856 855 ! … … 882 881 neuler = 0 ! Force Euler forward step 883 882 ! 884 ! Sea-ice : LIM-3 case (to add) 885 ! 886 #if defined key_lim2 887 ! Sea-ice : LIM-2 case. 888 zofrld(:,:)=frld(:,:) 889 zohicif(:,:)=hicif(:,:) 883 ! Sea-ice : LIM-3 case 884 ! 885 #if defined key_lim3 886 zofrld (:,:) = 1._wp - at_i(:,:) 887 zohicif(:,:) = htm_i(:,:) 890 888 ! 891 889 ! Initialize the now fields the background + increment 892 frld (:,:) = MIN( MAX( frld(:,:) - seaice_bkginc(:,:), 0.0_wp), 1.0_wp) 893 pfrld(:,:) = frld(:,:) 894 fr_i (:,:) = 1.0_wp - frld(:,:) ! adjust ice fraction 895 zseaicendg(:,:) = zofrld(:,:) - frld(:,:) ! find out actual sea ice nudge applied 890 at_i(:,:) = 1. - MIN( MAX( 1.-at_i(:,:) - seaice_bkginc(:,:), 0.0_wp), 1.0_wp) 891 pfrld(:,:) = 1.-at_i(:,:) 892 fr_i(:,:) = at_i(:,:) ! adjust ice fraction 893 ! 894 zseaicendg(:,:) = zofrld(:,:) - (1. - at_i(:,:)) ! find out actual sea ice nudge applied 896 895 ! 897 896 ! Nudge sea ice depth to bring it up to a required minimum depth 898 WHERE( zseaicendg(:,:) > 0.0_wp .AND. h icif(:,:) < zhicifmin )899 zhicifinc(:,:) = (zhicifmin - h icif(:,:)) * zincwgt897 WHERE( zseaicendg(:,:) > 0.0_wp .AND. htm_i(:,:) < zhicifmin ) 898 zhicifinc(:,:) = (zhicifmin - htm_i(:,:)) * zincwgt 900 899 ELSEWHERE 901 zhicifinc(:,:) = 0. _wp900 zhicifinc(:,:) = 0.0_wp 902 901 END WHERE 903 902 ! 904 903 ! nudge ice depth 905 h icif (:,:) = hicif(:,:) + zhicifinc(:,:)904 htm_i (:,:) = htm_i (:,:) + zhicifinc(:,:) 906 905 phicif(:,:) = phicif(:,:) 907 906 ! … … 926 925 ENDIF 927 926 928 !#if defined defined key_lim 2|| defined key_cice927 !#if defined defined key_lim3 || defined key_cice 929 928 ! 930 929 ! IF (ln_seaicebal ) THEN
Note: See TracChangeset
for help on using the changeset viewer.