New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 10181 for branches/UKMO/dev_r5518_obs_oper_update_icethick/NEMOGCM/NEMO/OPA_SRC/SBC – NEMO

Ignore:
Timestamp:
2018-10-09T11:29:47+02:00 (6 years ago)
Author:
emmafiedler
Message:

Working version of ice thickness assimilation updates

Location:
branches/UKMO/dev_r5518_obs_oper_update_icethick/NEMOGCM/NEMO/OPA_SRC/SBC
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_obs_oper_update_icethick/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_ice.F90

    r9987 r10181  
    105105   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   tsfc_ice           !: sea-ice surface skin temperature (on categories) 
    106106   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::   kn_ice             !: sea-ice surface layer thermal conductivity (on cats) 
    107  
     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 
    108109   ! variables used in the coupled interface 
    109110   INTEGER , PUBLIC, PARAMETER ::   jpl = ncat 
     
    116117#if defined key_asminc 
    117118   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   ndaice_da          !: NEMO fresh water flux to ocean due to data assim 
     119   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   ndsit_da           !: NEMO ice thickness change from data assim (/second? These descriptions are jumbled?) 
    118120   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   nfresh_da          !: NEMO salt flux to ocean due to data assim 
    119121   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::   nfsalt_da          !: NEMO ice concentration change/second from data assim 
     
    171173                wndj_ice(jpi,jpj)     , nfrzmlt(jpi,jpj)      , ss_iou(jpi,jpj)       , & 
    172174                ss_iov(jpi,jpj)       , fr_iu(jpi,jpj)        , fr_iv(jpi,jpj)        , & 
     175                thick_iu(jpi,jpj)     , thick_iv(jpi,jpj)     ,                         & 
     176                ht_i(jpi,jpj,ncat)    , ht_s(jpi,jpj,ncat)    ,                         &                 
    173177                a_i(jpi,jpj,ncat)     , topmelt(jpi,jpj,ncat) , botmelt(jpi,jpj,ncat) , & 
    174178#if defined key_asminc 
    175179                ndaice_da(jpi,jpj)    , nfresh_da(jpi,jpj)    , nfsalt_da(jpi,jpj)    , & 
     180                ndsit_da(jpi,jpj)    ,                                                  & 
    176181#endif 
    177182                sstfrz(jpi,jpj)       , STAT= ierr(1) ) 
  • branches/UKMO/dev_r5518_obs_oper_update_icethick/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90

    r9987 r10181  
    121121   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   sprecip           !: solid precipitation                          [Kg/m2/s] 
    122122   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(:,:) ::   vol_i             !: ice volume [m3]    
    123125#if defined key_cpl_carbon_cycle 
    124126   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) ::   atm_co2           !: atmospheric pCO2                             [ppm] 
     
    196198         ! 
    197199      ALLOCATE( tprecip(jpi,jpj) , sprecip(jpi,jpj) , fr_i(jpi,jpj) ,     & 
     200         & thick_i(jpi,jpj) ,  vol_i(jpi,jpj) ,                           &       
    198201#if defined key_cpl_carbon_cycle 
    199202         &      atm_co2(jpi,jpj) ,                                        & 
  • branches/UKMO/dev_r5518_obs_oper_update_icethick/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r9987 r10181  
    5757                flatn_f,fsurfn_f,fcondtopn_f,                    & 
    5858#ifdef key_asminc 
    59                 daice_da,fresh_da,fsalt_da,                    & 
     59                daice_da,dsit_da,fresh_da,fsalt_da,             & 
    6060#endif 
    6161                uatm,vatm,wind,fsw,flw,Tair,potT,Qa,rhoa,zlvl,   & 
     
    250250      CALL lbc_lnk ( fr_iu , 'U', 1. ) 
    251251      CALL lbc_lnk ( fr_iv , 'V', 1. ) 
     252       
     253!!*****JUST ADDED BUT NEEDS CONFIRMING!!**** 
     254! Snow and ice thickness 
     255      CALL cice2nemo(vice,thick_i,'T', 1. )  !!Do this for snow depth too? set thick_s. Duplicated below for embedded ice? 
     256 
     257! vice is volume per unit area of grid cell = thickness 
     258       
     259      IF ( (ksbc == jp_flx) .OR. (ksbc == jp_purecpl) ) THEN ! Confirm what this if loop is for 
     260         DO jl = 1,ncat 
     261            CALL cice2nemo(vsnon(:,:,jl,:),ht_s(:,:,jl),'T', 1. ) 
     262            CALL cice2nemo(vicen(:,:,jl,:),ht_i(:,:,jl),'T', 1. ) 
     263         ENDDO 
     264      ENDIF 
     265       
     266! T point to U point 
     267! T point to V point 
     268      thick_iu(:,:)=0.0 
     269      thick_iv(:,:)=0.0 
     270      DO jj=1,jpjm1 
     271         DO ji=1,jpim1 
     272            thick_iu(ji,jj)=0.5*(thick_i(ji,jj)+thick_i(ji+1,jj))*umask(ji,jj,1) 
     273            thick_iv(ji,jj)=0.5*(thick_i(ji,jj)+thick_i(ji,jj+1))*vmask(ji,jj,1) 
     274         ENDDO 
     275      ENDDO 
     276 
     277      CALL lbc_lnk ( thick_iu , 'U', 1. ) 
     278      CALL lbc_lnk ( thick_iv , 'V', 1. ) 
     279 
     280!!**********************************************************      
     281       
    252282 
    253283      !                                      ! embedded sea ice 
     
    310340      nfresh_da(:,:) = 0.0    
    311341      nfsalt_da(:,:) = 0.0    
    312       ndaice_da(:,:) = 0.0          
     342      ndaice_da(:,:) = 0.0 
     343      ndsit_da(:,:) = 0.0 
    313344#endif 
    314345      ! 
     
    469500      ztmp(:,:)=ndaice_da(:,:)*tmask(:,:,1) 
    470501      Call nemo2cice(ztmp,daice_da,'T', 1. ) 
     502!Ice thickness change (from assimilation) 
     503      ztmp(:,:)=ndsit_da(:,:)*tmask(:,:,1) 
     504      Call nemo2cice(ztmp,dsit_da,'T', 1. ) 
    471505#endif  
    472506 
Note: See TracChangeset for help on using the changeset viewer.