- Timestamp:
- 2017-12-01T14:53:57+01:00 (6 years ago)
- Location:
- branches/UKMO/dev_r8126_LIM3_couple/NEMOGCM/NEMO/OPA_SRC/ASM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r8126_LIM3_couple/NEMOGCM/NEMO/OPA_SRC/ASM/asmbkg.F90
r8877 r8879 38 38 USE asmpar ! Parameters for the assmilation interface 39 39 USE zdfmxl ! mixed layer depth 40 #if defined key_lim241 USE ice_242 #endif43 40 #if defined key_lim3 44 41 USE ice … … 148 145 CALL iom_rstput( kt, nitdin_r, inum, 'sn' , tsn(:,:,:,jp_sal) ) 149 146 CALL iom_rstput( kt, nitdin_r, inum, 'sshn' , sshn ) 150 #if defined key_lim 2 || defined key_lim3151 IF( nn_ice == 2 .OR. nn_ice == 3) THEN152 IF( ALLOCATED( frld) ) THEN153 CALL iom_rstput( kt, nitdin_r, inum, 'iceconc', 1._wp - frld(:,:) )147 #if defined key_lim3 148 IF( nn_ice == 2 ) THEN 149 IF( ALLOCATED(at_i) ) THEN 150 CALL iom_rstput( kt, nitdin_r, inum, 'iceconc', at_i(:,:) ) 154 151 ELSE 155 CALL ctl_warn('Ice concentration not written to background as ice variable frldnot allocated on this timestep')152 CALL ctl_warn('Ice concentration not written to background as ice variable at_i not allocated on this timestep') 156 153 ENDIF 157 154 ENDIF -
branches/UKMO/dev_r8126_LIM3_couple/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r8877 r8879 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: hm_i, at_i, at_i_b 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(:,:) = hm_i(:,:) 838 ! 839 at_i (:,:) = 1. - MIN( MAX( 1.-at_i (:,:) - seaice_bkginc(:,:) * zincwgt, 0.0_wp), 1.0_wp) 840 at_i_b(:,:) = 1. - MIN( MAX( 1.-at_i_b(:,:) - 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. hm_i(:,:) < zhicifmin ) 847 zhicifinc(:,:) = (zhicifmin - hm_i(:,:)) * zincwgt 849 848 ELSEWHERE 850 849 zhicifinc(:,:) = 0.0_wp … … 852 851 ! 853 852 ! nudge ice depth 854 hicif (:,:) = hicif (:,:) + zhicifinc(:,:) 855 phicif(:,:) = phicif(:,:) + zhicifinc(:,:) 853 hm_i (:,:) = hm_i (:,:) + zhicifinc(:,:) 856 854 ! 857 855 ! seaice salinity balancing (to add) … … 882 880 neuler = 0 ! Force Euler forward step 883 881 ! 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(:,:) 882 ! Sea-ice : LIM-3 case 883 ! 884 #if defined key_lim3 885 zofrld (:,:) = 1._wp - at_i(:,:) 886 zohicif(:,:) = hm_i(:,:) 890 887 ! 891 888 ! 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 889 at_i(:,:) = 1. - MIN( MAX( 1.-at_i(:,:) - seaice_bkginc(:,:), 0.0_wp), 1.0_wp) 890 at_i_b(:,:) = at_i(:,:) 891 fr_i(:,:) = at_i(:,:) ! adjust ice fraction 892 ! 893 zseaicendg(:,:) = zofrld(:,:) - (1. - at_i(:,:)) ! find out actual sea ice nudge applied 896 894 ! 897 895 ! 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(:,:)) * zincwgt896 WHERE( zseaicendg(:,:) > 0.0_wp .AND. hm_i(:,:) < zhicifmin ) 897 zhicifinc(:,:) = (zhicifmin - hm_i(:,:)) * zincwgt 900 898 ELSEWHERE 901 zhicifinc(:,:) = 0. _wp899 zhicifinc(:,:) = 0.0_wp 902 900 END WHERE 903 901 ! 904 902 ! nudge ice depth 905 hicif (:,:) = hicif (:,:) + zhicifinc(:,:) 906 phicif(:,:) = phicif(:,:) 903 hm_i (:,:) = hm_i (:,:) + zhicifinc(:,:) 907 904 ! 908 905 ! seaice salinity balancing (to add) … … 926 923 ENDIF 927 924 928 !#if defined defined key_lim 2|| defined key_cice925 !#if defined defined key_lim3 || defined key_cice 929 926 ! 930 927 ! IF (ln_seaicebal ) THEN
Note: See TracChangeset
for help on using the changeset viewer.