Opened 3 years ago

Last modified 2 years ago

#1796 assigned Bug

CICE interface modification for initial CICE output

Reported by: dupontf Owned by: timgraham
Priority: low Milestone:
Component: OCE Version: release-3.6
Severity: Keywords: CICE
Cc: timgraham

Description (last modified by nicolasmartin)

Context

the NEMO-CICE interface (tag 5516) is missing a correct initialization for the CICE initial output. Some impact as well on the initial ice temperature profile. Some cleanup and consistency between CICE4 and CICE5

Analysis

CICE does an initialization based on default fields (exception: CICE5 is passed the correct sst) which could be based on NEMO fields. This can impact the initial ice temperature profile and the initial CICE output.
CICE4.0 takes default values for sss,sst,potT,Tair fields.
CICE5 takes values for sss,potT,Tair fields (sst is passed before the start of CICE init phase)

Fix

add a second init and CICE output after the correct sss,sst,Tf,potT,Tair fields are passed. (See attached file)
some other minor cosmetic changes such as:

  1. the array ztmp is useless between 396 and 416

Linebranches/2015/nemo_v3_6_STABLE/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90
390         ENDDO
391
392      ELSE IF (ksbc == jp_core) THEN
393
394! Pass CORE forcing fields to CICE (which will calculate heat fluxes etc itself)
395! x comp and y comp of atmosphere surface wind (CICE expects on T points)
396         ztmp(:,:) = wndi_ice(:,:)
397         CALL nemo2cice(ztmp,uatm,'T', -1. )
398         ztmp(:,:) = wndj_ice(:,:)
399         CALL nemo2cice(ztmp,vatm,'T', -1. )
400         ztmp(:,:) = SQRT ( wndi_ice(:,:)**2 + wndj_ice(:,:)**2 )
401         CALL nemo2cice(ztmp,wind,'T', 1. )    ! Wind speed (m/s)
402         ztmp(:,:) = qsr_ice(:,:,1)
403         CALL nemo2cice(ztmp,fsw,'T', 1. )     ! Incoming short-wave (W/m^2)
404         ztmp(:,:) = qlw_ice(:,:,1)
405         CALL nemo2cice(ztmp,flw,'T', 1. )     ! Incoming long-wave (W/m^2)
406         ztmp(:,:) = tatm_ice(:,:)
407         CALL nemo2cice(ztmp,Tair,'T', 1. )    ! Air temperature (K)
408         CALL nemo2cice(ztmp,potT,'T', 1. )    ! Potential temp (K)
409! Following line uses MAX(....) to avoid problems if tatm_ice has unset halo rows 
410         ztmp(:,:) = 101000. / ( 287.04 * MAX(1.0,tatm_ice(:,:)) )   
411                                               ! Constant (101000.) atm pressure assumed
412         CALL nemo2cice(ztmp,rhoa,'T', 1. )    ! Air density (kg/m^3)
413         ztmp(:,:) = qatm_ice(:,:)
414         CALL nemo2cice(ztmp,Qa,'T', 1. )      ! Specific humidity (kg/kg)
415         ztmp(:,:)=10.0
416         CALL nemo2cice(ztmp,zlvl,'T', 1. )    ! Atmos level height (m)
417
418! May want to check all values are physically realistic (as in CICE routine
419! prepare_forcing)?


  1. mass ice embedding has lines redundant with dom_vvl_init. Since those could useful as well in case of hot initialization, I suggest moving them in a distinct routine in domvvl.F90 so that they can be called anytime needed. The only difference is dom_vll_init has
fse3t_a(:,:,jpk) = e3t_0(:,:,jpk)

whereas sbcice_cice has

fse3t_a(:,:,:) = fse3t_b(:,:,:)

the latter being more consistent to my opinion and has no impact when ssh=0 (which is assumed when calling dom_vvl_init)

additional comment: could be merged with #1428 of Tim Graham, since I also believe that a consistent calculation of the freezing temperature is needed in NEMO and CICE.

Commit History (0)

(No commits)

Attachments (1)

sbcice_cice.F90 (45.7 KB) - added by dupontf 3 years ago.

Download all attachments as: .zip

Change History (4)

Changed 3 years ago by dupontf

comment:1 Changed 2 years ago by clevy

  • Owner changed from nemo to timgraham

comment:2 Changed 2 years ago by clevy

  • Cc timgraham added
  • Status changed from new to assigned

comment:3 Changed 2 years ago by nicolasmartin

  • Description modified (diff)
Note: See TracTickets for help on using tickets.