Changeset 12613
- Timestamp:
- 2020-03-26T12:30:42+01:00 (4 years ago)
- Location:
- branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/CONFIG/SHARED/namelist_ref
r11559 r12613 1298 1298 ln_asmdin = .false. ! Logical switch for Direct Initialization (DI) 1299 1299 ln_asmiau = .false. ! Logical switch for Incremental Analysis Updating (IAU) 1300 ln_seaiceinc = .false. ! Logical switch for applying sea ice increments 1300 ln_seaiceinc = .false. ! Logical switch for applying sea ice concentration increments 1301 ln_sitinc = .false. ! Logical switch for applying sea ice thickness increments 1301 1302 ln_phytobal = .false. ! Logical switch for phytoplankton multivariate balancing 1302 1303 ln_slchltotinc = .false. ! Logical switch for applying slchltot increments -
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/ASM/asminc.F90
r10302 r12613 21 21 !! dyn_asm_inc : Apply the dynamic (u and v) increments 22 22 !! ssh_asm_inc : Apply the SSH increment 23 !! seaice_asm_inc : Apply the seaice increment 23 !! seaice_asm_inc : Apply the sea ice concentration increment 24 !! sit_asm_inc : Apply the sea ice thickness increment 24 25 !!---------------------------------------------------------------------- 25 26 USE wrk_nemo ! Memory Allocation … … 41 42 #if defined key_cice && defined key_asminc 42 43 USE sbc_ice, ONLY : & ! CICE Ice model variables 43 & ndaice_da, n fresh_da, nfsalt_da44 & ndaice_da, ndsit_da, nfresh_da, nfsalt_da 44 45 #endif 45 46 USE sbc_oce ! Surface boundary condition variables. … … 54 55 PUBLIC dyn_asm_inc !: Apply the dynamic (u and v) increments 55 56 PUBLIC ssh_asm_inc !: Apply the SSH increment 56 PUBLIC seaice_asm_inc !: Apply the seaice increment 57 PUBLIC seaice_asm_inc !: Apply the seaice concentration increment 58 PUBLIC sit_asm_inc !: Apply the seaice thickness increment 57 59 PUBLIC bgc_asm_inc !: Apply the biogeochemistry increments 58 60 … … 63 65 #endif 64 66 LOGICAL, PUBLIC :: ln_bkgwri = .FALSE. !: No output of the background state fields 67 LOGICAL, PUBLIC :: ln_avgbkg = .FALSE. !: No output of the mean background state fields 65 68 LOGICAL, PUBLIC :: ln_asmiau = .FALSE. !: No applying forcing with an assimilation increment 66 69 LOGICAL, PUBLIC :: ln_asmdin = .FALSE. !: No direct initialization … … 68 71 LOGICAL, PUBLIC :: ln_dyninc = .FALSE. !: No dynamics (u and v) assimilation increments 69 72 LOGICAL, PUBLIC :: ln_sshinc = .FALSE. !: No sea surface height assimilation increment 70 LOGICAL, PUBLIC :: ln_seaiceinc !: No sea ice concentration increment 73 LOGICAL, PUBLIC :: ln_seaiceinc = .FALSE. !: No sea ice concentration increment 74 LOGICAL, PUBLIC :: ln_sitinc = .FALSE. !: No sea ice thickness increment 71 75 LOGICAL, PUBLIC :: lk_bgcinc = .FALSE. !: No biogeochemistry increments 72 76 LOGICAL, PUBLIC :: ln_salfix = .FALSE. !: Apply minimum salinity check … … 94 98 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: ssh_bkg, ssh_bkginc ! Background sea surface height and its increment 95 99 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: seaice_bkginc ! Increment to the background sea ice conc 100 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: sit_bkginc ! Increment to the background sea ice thickness 96 101 97 102 !! * Substitutions … … 136 141 REAL(wp), POINTER, DIMENSION(:,:) :: hdiv ! 2D workspace 137 142 !! 138 NAMELIST/nam_asminc/ ln_bkgwri, ln_ balwri,&143 NAMELIST/nam_asminc/ ln_bkgwri, ln_avgbkg, ln_balwri, & 139 144 & ln_trainc, ln_dyninc, ln_sshinc, & 140 145 & ln_phytobal, ln_slchltotinc, ln_slchldiainc, & … … 147 152 & nitbkg, nitdin, nitiaustr, nitiaufin, niaufn, & 148 153 & ln_salfix, salfixmin, nn_divdmp, & 149 & ln_seaiceinc, ln_ temnofreeze,&154 & ln_seaiceinc, ln_sitinc, ln_temnofreeze, & 150 155 & mld_choice_bgc, rn_maxchlinc 151 156 !!---------------------------------------------------------------------- … … 155 160 !----------------------------------------------------------------------- 156 161 ln_seaiceinc = .FALSE. 162 ln_sitinc = .FALSE. 157 163 ln_temnofreeze = .FALSE. 158 164 … … 173 179 WRITE(numout,*) ' Namelist nam_asminc : set assimilation increment parameters' 174 180 WRITE(numout,*) ' Logical switch for writing out background state ln_bkgwri = ', ln_bkgwri 181 WRITE(numout,*) ' Logical switch for writing mean background state ln_avgbkg = ', ln_avgbkg 175 182 WRITE(numout,*) ' Logical switch for writing out balancing increments ln_balwri = ', ln_balwri 176 183 WRITE(numout,*) ' Logical switch for applying tracer increments ln_trainc = ', ln_trainc 177 184 WRITE(numout,*) ' Logical switch for applying velocity increments ln_dyninc = ', ln_dyninc 178 185 WRITE(numout,*) ' Logical switch for applying SSH increments ln_sshinc = ', ln_sshinc 186 WRITE(numout,*) ' Logical switch for applying SIC increments ln_seaiceinc = ', ln_seaiceinc 187 WRITE(numout,*) ' Logical switch for applying SIT increments ln_sitinc = ', ln_sitinc 179 188 WRITE(numout,*) ' Logical switch for Direct Initialization (DI) ln_asmdin = ', ln_asmdin 180 WRITE(numout,*) ' Logical switch for applying sea ice increments ln_seaiceinc = ', ln_seaiceinc 189 WRITE(numout,*) ' Logical switch for Incremental Analysis Updating (IAU) ln_asmiau = ', ln_asmiau 190 WRITE(numout,*) ' Timestep of background in [0,nitend-nit000-1] nitbkg = ', nitbkg 191 WRITE(numout,*) ' Timestep of background for DI in [0,nitend-nit000-1] nitdin = ', nitdin 192 WRITE(numout,*) ' Timestep of start of IAU interval in [0,nitend-nit000-1] nitiaustr = ', nitiaustr 193 WRITE(numout,*) ' Timestep of end of IAU interval in [0,nitend-nit000-1] nitiaufin = ', nitiaufin 194 WRITE(numout,*) ' Type of IAU weighting function niaufn = ', niaufn 195 WRITE(numout,*) ' Logical switch for ensuring that the sa > salfixmin ln_salfix = ', ln_salfix 196 WRITE(numout,*) ' Minimum salinity after applying the increments salfixmin = ', salfixmin 181 197 WRITE(numout,*) ' Logical switch for phytoplankton balancing ln_phytobal = ', ln_phytobal 182 198 WRITE(numout,*) ' Logical switch for applying slchltot increments ln_slchltotinc = ', ln_slchltotinc … … 197 213 WRITE(numout,*) ' Logical switch for applying pph increments ln_pphinc = ', ln_pphinc 198 214 WRITE(numout,*) ' Logical switch for applying po2 increments ln_po2inc = ', ln_po2inc 199 WRITE(numout,*) ' Logical switch for Incremental Analysis Updating (IAU) ln_asmiau = ', ln_asmiau200 WRITE(numout,*) ' Timestep of background in [0,nitend-nit000-1] nitbkg = ', nitbkg201 WRITE(numout,*) ' Timestep of background for DI in [0,nitend-nit000-1] nitdin = ', nitdin202 WRITE(numout,*) ' Timestep of start of IAU interval in [0,nitend-nit000-1] nitiaustr = ', nitiaustr203 WRITE(numout,*) ' Timestep of end of IAU interval in [0,nitend-nit000-1] nitiaufin = ', nitiaufin204 WRITE(numout,*) ' Type of IAU weighting function niaufn = ', niaufn205 WRITE(numout,*) ' Logical switch for ensuring that the sa > salfixmin ln_salfix = ', ln_salfix206 WRITE(numout,*) ' Minimum salinity after applying the increments salfixmin = ', salfixmin207 215 WRITE(numout,*) ' Choice of MLD for BGC assimilation mld_choice_bgc = ', mld_choice_bgc 208 216 WRITE(numout,*) ' Maximum absolute chlorophyll increment (<=0 = off) rn_maxchlinc = ', rn_maxchlinc … … 264 272 IF ( ( ( .NOT. ln_asmdin ).AND.( .NOT. ln_asmiau ) ) & 265 273 & .AND.( ( ln_trainc ).OR.( ln_dyninc ).OR.( ln_sshinc ).OR.( ln_seaiceinc ).OR. & 266 & ( l k_bgcinc ) )) &274 & ( ln_sitinc ).OR.( lk_bgcinc ) )) & 267 275 & CALL ctl_stop( ' One or more of ln_trainc, ln_dyninc, ln_sshinc, ln_seaiceinc,', & 268 & ' ln_ (bgc-variable)inc is set to .true.', &276 & ' ln_sitinc and ln_(bgc-variable)inc is set to .true.', & 269 277 & ' but ln_asmdin and ln_asmiau are both set to .false. :', & 270 278 & ' Inconsistent options') … … 275 283 276 284 IF ( ( .NOT. ln_trainc ).AND.( .NOT. ln_dyninc ).AND.( .NOT. ln_sshinc ).AND.( .NOT. ln_seaiceinc ) & 277 & .AND.( .NOT. l k_bgcinc ) ) &285 & .AND.( .NOT. ln_sitinc ).AND.( .NOT. lk_bgcinc ) ) & 278 286 & CALL ctl_warn( ' ln_trainc, ln_dyninc, ln_sshinc, ln_seaiceinc,', & 279 & ' ln_ (bgc-variable)inc are set to .false. :', &287 & ' ln_sitinc and ln_(bgc-variable)inc are set to .false. :', & 280 288 & ' The assimilation increments are not applied') 281 289 … … 377 385 !-------------------------------------------------------------------- 378 386 379 ALLOCATE( t_bkginc(jpi,jpj,jpk) ) 380 ALLOCATE( s_bkginc(jpi,jpj,jpk) ) 381 ALLOCATE( u_bkginc(jpi,jpj,jpk) ) 382 ALLOCATE( v_bkginc(jpi,jpj,jpk) ) 383 ALLOCATE( ssh_bkginc(jpi,jpj) ) 384 ALLOCATE( seaice_bkginc(jpi,jpj)) 387 IF ( ln_trainc ) THEN 388 ALLOCATE( t_bkginc(jpi,jpj,jpk) ) 389 ALLOCATE( s_bkginc(jpi,jpj,jpk) ) 390 t_bkginc(:,:,:) = 0.0 391 s_bkginc(:,:,:) = 0.0 392 ENDIF 393 IF ( ln_dyninc ) THEN 394 ALLOCATE( u_bkginc(jpi,jpj,jpk) ) 395 ALLOCATE( v_bkginc(jpi,jpj,jpk) ) 396 u_bkginc(:,:,:) = 0.0 397 v_bkginc(:,:,:) = 0.0 398 ENDIF 399 IF ( ln_sshinc ) THEN 400 ALLOCATE( ssh_bkginc(jpi,jpj) ) 401 ssh_bkginc(:,:) = 0.0 402 ENDIF 403 IF ( ln_seaiceinc ) THEN 404 ALLOCATE( seaice_bkginc(jpi,jpj)) 405 seaice_bkginc(:,:) = 0.0 406 ENDIF 407 IF ( ln_sitinc ) THEN 408 ALLOCATE( sit_bkginc(jpi,jpj)) 409 sit_bkginc(:,:) = 0.0 410 ENDIF 385 411 #if defined key_asminc 386 412 ALLOCATE( ssh_iau(jpi,jpj) ) 387 #endif388 t_bkginc(:,:,:) = 0.0389 s_bkginc(:,:,:) = 0.0390 u_bkginc(:,:,:) = 0.0391 v_bkginc(:,:,:) = 0.0392 ssh_bkginc(:,:) = 0.0393 seaice_bkginc(:,:) = 0.0394 #if defined key_asminc395 413 ssh_iau(:,:) = 0.0 396 414 #endif 397 415 IF ( ( ln_trainc ).OR.( ln_dyninc ).OR.( ln_sshinc ).OR.( ln_seaiceinc ) & 398 & .OR.( l k_bgcinc ) ) THEN416 & .OR.( ln_sitinc ).OR.( lk_bgcinc ) ) THEN 399 417 400 418 !-------------------------------------------------------------------- … … 459 477 ! to allow for differences in masks 460 478 WHERE( ABS( ssh_bkginc(:,:) ) > 1.0e+10 ) ssh_bkginc(:,:) = 0.0 479 ENDIF 480 481 IF ( ln_sitinc ) THEN 482 CALL iom_get( inum, jpdom_autoglo, 'bckinsit', sit_bkginc, 1 ) 483 ! Apply the masks 484 sit_bkginc(:,:) = sit_bkginc(:,:) * tmask(:,:,1) 485 ! Set missing increments to 0.0 rather than 1e+20 486 ! to allow for differences in masks 487 WHERE( ABS( sit_bkginc(:,:) ) > 1.0e+10 ) sit_bkginc(:,:) = 0.0 461 488 ENDIF 462 489 … … 827 854 ! Perhaps the following call should be in step 828 855 IF ( ln_seaiceinc ) CALL seaice_asm_inc ( kt ) ! apply sea ice concentration increment 856 IF ( ln_sitinc ) CALL sit_asm_inc ( kt ) ! apply sea ice thickness increment 829 857 ! 830 858 END SUBROUTINE tra_asm_inc … … 988 1016 END SUBROUTINE ssh_asm_inc 989 1017 1018 SUBROUTINE sit_asm_inc( kt, kindic ) 1019 !!---------------------------------------------------------------------- 1020 !! *** ROUTINE sit_asm_inc *** 1021 !! 1022 !! ** Purpose : Apply the sea ice thickness assimilation increment. 1023 !! 1024 !! ** Method : Direct initialization or Incremental Analysis Updating. 1025 !! 1026 !! ** Action : 1027 !! 1028 !!---------------------------------------------------------------------- 1029 IMPLICIT NONE 1030 ! 1031 INTEGER, INTENT(in) :: kt ! Current time step 1032 INTEGER, INTENT(in), OPTIONAL :: kindic ! flag for disabling the deallocation 1033 ! 1034 INTEGER :: it 1035 REAL(wp) :: zincwgt ! IAU weight for current time step 1036 !!---------------------------------------------------------------------- 1037 1038 IF ( ln_asmiau ) THEN 1039 1040 !-------------------------------------------------------------------- 1041 ! Incremental Analysis Updating 1042 !-------------------------------------------------------------------- 1043 1044 IF ( ( kt >= nitiaustr_r ).AND.( kt <= nitiaufin_r ) ) THEN 1045 1046 it = kt - nit000 + 1 1047 zincwgt = wgtiau(it) ! IAU weight for the current time step 1048 ! note this is not a tendency so should not be divided by rdt (as with the tracer and other increments) 1049 ! EF: Actually CICE is expecting a tendency so is divided by rdt below 1050 1051 IF(lwp) THEN 1052 WRITE(numout,*) 1053 WRITE(numout,*) 'sit_asm_inc : sea ice thick IAU at time step = ', & 1054 & kt,' with IAU weight = ', wgtiau(it) 1055 WRITE(numout,*) '~~~~~~~~~~~~' 1056 ENDIF 1057 1058 #if defined key_cice && defined key_asminc 1059 ! Sea-ice thickness : CICE case. Pass ice thickness increment tendency into CICE 1060 ndsit_da(:,:) = sit_bkginc(:,:) * zincwgt / rdt 1061 #endif 1062 1063 IF ( kt == nitiaufin_r ) THEN 1064 DEALLOCATE( sit_bkginc ) 1065 ENDIF 1066 1067 ELSE 1068 1069 #if defined key_cice && defined key_asminc 1070 ! Sea-ice thickness : CICE case. Zero ice increment tendency into CICE 1071 ndsit_da(:,:) = 0.0_wp 1072 #endif 1073 1074 ENDIF 1075 1076 ELSEIF ( ln_asmdin ) THEN 1077 1078 !-------------------------------------------------------------------- 1079 ! Direct Initialization 1080 !-------------------------------------------------------------------- 1081 1082 IF ( kt == nitdin_r ) THEN 1083 1084 neuler = 0 ! Force Euler forward step 1085 1086 #if defined key_cice && defined key_asminc 1087 ! Sea-ice thickness : CICE case. Pass ice thickness increment tendency into CICE 1088 ndsit_da(:,:) = sit_bkginc(:,:) / rdt 1089 #endif 1090 IF ( .NOT. PRESENT(kindic) ) THEN 1091 DEALLOCATE( sit_bkginc ) 1092 END IF 1093 1094 ELSE 1095 1096 #if defined key_cice && defined key_asminc 1097 ! Sea-ice thicnkness : CICE case. Zero ice thickness increment tendency into CICE 1098 ndsit_da(:,:) = 0.0_wp 1099 #endif 1100 1101 ENDIF 1102 1103 ENDIF 1104 1105 END SUBROUTINE sit_asm_inc 990 1106 991 1107 SUBROUTINE seaice_asm_inc( kt, kindic ) … … 993 1109 !! *** ROUTINE seaice_asm_inc *** 994 1110 !! 995 !! ** Purpose : Apply the sea ice assimilation increment.1111 !! ** Purpose : Apply the sea ice concentration assimilation increment. 996 1112 !! 997 1113 !! ** Method : Direct initialization or Incremental Analysis Updating. -
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90
r10302 r12613 105 105 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: tsfc_ice !: sea-ice surface skin temperature (on categories) 106 106 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: kn_ice !: sea-ice surface layer thermal conductivity (on cats) 107 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: thick_iu !: ice thickness at NEMO U point 108 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: thick_iv !: ice thickness at NEMO V point 109 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: thick_su !: snow depth at NEMO U point 110 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: thick_sv !: snow depth at NEMO V point 107 111 108 112 ! variables used in the coupled interface … … 116 120 #if defined key_asminc 117 121 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ndaice_da !: NEMO fresh water flux to ocean due to data assim 122 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: ndsit_da !: NEMO ice thickness change due to data assim 118 123 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: nfresh_da !: NEMO salt flux to ocean due to data assim 119 124 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: nfsalt_da !: NEMO ice concentration change/second from data assim … … 171 176 wndj_ice(jpi,jpj) , nfrzmlt(jpi,jpj) , ss_iou(jpi,jpj) , & 172 177 ss_iov(jpi,jpj) , fr_iu(jpi,jpj) , fr_iv(jpi,jpj) , & 178 thick_iu(jpi,jpj) , thick_iv(jpi,jpj) , & 179 thick_su(jpi,jpj) , thick_sv(jpi,jpj) , & 180 ht_i(jpi,jpj,ncat) , ht_s(jpi,jpj,ncat) , & 173 181 a_i(jpi,jpj,ncat) , topmelt(jpi,jpj,ncat) , botmelt(jpi,jpj,ncat) , & 174 182 #if defined key_asminc 175 183 ndaice_da(jpi,jpj) , nfresh_da(jpi,jpj) , nfsalt_da(jpi,jpj) , & 184 ndsit_da(jpi,jpj) , & 176 185 #endif 177 186 sstfrz(jpi,jpj) , STAT= ierr(1) ) -
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r8046 r12613 121 121 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: sprecip !: solid precipitation [Kg/m2/s] 122 122 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fr_i !: ice fraction = 1 - lead fraction (between 0 to 1) 123 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: thick_i !: ice thickness [m] 124 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: thick_s !: snow depth [m] 125 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: vol_i !: ice volume [m3] 123 126 #if defined key_cpl_carbon_cycle 124 127 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: atm_co2 !: atmospheric pCO2 [ppm] … … 196 199 ! 197 200 ALLOCATE( tprecip(jpi,jpj) , sprecip(jpi,jpj) , fr_i(jpi,jpj) , & 201 & thick_i(jpi,jpj) , thick_s(jpi,jpj) , vol_i(jpi,jpj) , & 198 202 #if defined key_cpl_carbon_cycle 199 203 & atm_co2(jpi,jpj) , & -
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
r10302 r12613 57 57 flatn_f,fsurfn_f,fcondtopn_f, & 58 58 #ifdef key_asminc 59 daice_da, fresh_da,fsalt_da,&59 daice_da,dhi_da,fresh_da,fsalt_da, & 60 60 #endif 61 61 uatm,vatm,wind,fsw,flw,Tair,potT,Qa,rhoa,zlvl, & … … 250 250 CALL lbc_lnk ( fr_iu , 'U', 1. ) 251 251 CALL lbc_lnk ( fr_iv , 'V', 1. ) 252 253 ! Snow and ice thickness 254 ! vice, vsno is volume per unit area of grid cell = thickness 255 CALL cice2nemo(vice,thick_i,'T', 1. ) 256 CALL cice2nemo(vsno,thick_s,'T', 1. ) 257 258 IF ( (ksbc == jp_flx) .OR. (ksbc == jp_purecpl) ) THEN 259 DO jl = 1,ncat 260 CALL cice2nemo(vsnon(:,:,jl,:),ht_s(:,:,jl),'T', 1. ) 261 CALL cice2nemo(vicen(:,:,jl,:),ht_i(:,:,jl),'T', 1. ) 262 ENDDO 263 ENDIF 264 265 ! T point to U point 266 ! T point to V point 267 268 ! Sea ice thickness 269 thick_iu(:,:)=0.0 270 thick_iv(:,:)=0.0 271 DO jj=1,jpjm1 272 DO ji=1,jpim1 273 thick_iu(ji,jj)=0.5*(thick_i(ji,jj)+thick_i(ji+1,jj))*umask(ji,jj,1) 274 thick_iv(ji,jj)=0.5*(thick_i(ji,jj)+thick_i(ji,jj+1))*vmask(ji,jj,1) 275 ENDDO 276 ENDDO 277 278 CALL lbc_lnk ( thick_iu , 'U', 1. ) 279 CALL lbc_lnk ( thick_iv , 'V', 1. ) 280 281 ! Snow depth 282 thick_su(:,:)=0.0 283 thick_sv(:,:)=0.0 284 DO jj=1,jpjm1 285 DO ji=1,jpim1 286 thick_su(ji,jj)=0.5*(thick_s(ji,jj)+thick_s(ji+1,jj))*umask(ji,jj,1) 287 thick_sv(ji,jj)=0.5*(thick_s(ji,jj)+thick_s(ji,jj+1))*vmask(ji,jj,1) 288 ENDDO 289 ENDDO 290 291 CALL lbc_lnk ( thick_su , 'U', 1. ) 292 CALL lbc_lnk ( thick_sv , 'V', 1. ) 252 293 253 294 ! ! embedded sea ice … … 311 352 nfsalt_da(:,:) = 0.0 312 353 ndaice_da(:,:) = 0.0 354 ndsit_da(:,:) = 0.0 313 355 #endif 314 356 ! … … 469 511 ztmp(:,:)=ndaice_da(:,:)*tmask(:,:,1) 470 512 Call nemo2cice(ztmp,daice_da,'T', 1. ) 513 !Ice thickness change (from assimilation) 514 ztmp(:,:)=ndsit_da(:,:)*tmask(:,:,1) 515 Call nemo2cice(ztmp,dhi_da,'T', 1. ) 471 516 #endif 472 517
Note: See TracChangeset
for help on using the changeset viewer.