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 9714 – NEMO

Changeset 9714


Ignore:
Timestamp:
2018-05-31T17:07:08+02:00 (6 years ago)
Author:
jamrae
Message:

Made code changes for sea ice form drag coupling.

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

Legend:

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

    r8400 r9714  
    126126   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  a_i 
    127127   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) ::  ht_i, ht_s 
     128   REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:)   ::  rough_ice_fmd, rough_ice_skin 
    128129#endif 
    129130 
     
    188189#if defined key_cice || defined key_lim2 
    189190      IF( ln_cpl )   ALLOCATE( ht_i(jpi,jpj,jpl) , ht_s(jpi,jpj,jpl) , STAT=ierr(5) ) 
     191      IF( ln_cpl )   ALLOCATE( rough_ice_fmd(jpi,jpj) , rough_ice_skin(jpi,jpj) , STAT=ierr(5) )  
    190192#endif 
    191193 
  • branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbccpl.F90

    r8427 r9714  
    149149   INTEGER, PARAMETER ::   jps_bio_dms = 35           ! MEDUSA DMS surface concentration 
    150150   INTEGER, PARAMETER ::   jps_bio_chloro = 36        ! MEDUSA chlorophyll surface concentration 
    151    INTEGER, PARAMETER ::   jpsnd      = 36            ! total number of fields sent 
     151   INTEGER, PARAMETER ::   jps_rough_ice_fmd = 37     ! ice form drag roughness length 
     152   INTEGER, PARAMETER ::   jps_rough_ice_skin = 38    ! ice skin roughness length 
     153   INTEGER, PARAMETER ::   jpsnd      = 38            ! total number of fields sent 
    152154 
    153155   REAL(wp), PARAMETER :: dms_unit_conv = 1.0e+6      ! Coversion factor to get outgong DMS in standard units for coupling 
     
    163165   END TYPE FLD_C 
    164166   ! Send to the atmosphere                           ! 
    165    TYPE(FLD_C) ::   sn_snd_temp, sn_snd_alb, sn_snd_thick, sn_snd_crt, sn_snd_co2, sn_snd_cond, sn_snd_mpnd, sn_snd_sstfrz, sn_snd_thick1 
     167   TYPE(FLD_C) ::   sn_snd_temp, sn_snd_alb, sn_snd_thick, sn_snd_crt, sn_snd_co2, sn_snd_cond, sn_snd_mpnd, sn_snd_sstfrz, sn_snd_thick1, sn_snd_icerough 
    166168   TYPE(FLD_C) ::   sn_snd_bio_co2, sn_snd_bio_dms, sn_snd_bio_chloro                    
    167169 
     
    241243      !! 
    242244      NAMELIST/namsbc_cpl/  sn_snd_temp, sn_snd_alb   , sn_snd_thick , sn_snd_crt   , sn_snd_co2,     & 
    243          &                  sn_snd_cond, sn_snd_mpnd  , sn_snd_sstfrz, sn_snd_thick1,                 & 
     245         &                  sn_snd_cond, sn_snd_mpnd  , sn_snd_sstfrz, sn_snd_thick1, sn_snd_icerough,& 
    244246         &                  sn_rcv_w10m, sn_rcv_taumod, sn_rcv_tau   , sn_rcv_dqnsdt, sn_rcv_qsr,     & 
    245247         &                  sn_rcv_qns , sn_rcv_emp   , sn_rcv_rnf   , sn_rcv_cal   , sn_rcv_iceflx,  & 
     
    868870      CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_cond%cldes' ) 
    869871      END SELECT 
    870       ! 
    871        
    872  
     872      !      
     873      !                                                      ! ------------------------- ! 
     874      !                                                      !   Sea ice form drag       ! 
     875      !                                                      ! ------------------------- ! 
     876      ssnd(jps_rough_ice_fmd )%clname = 'OIceFmd' 
     877      ssnd(jps_rough_ice_skin )%clname = 'ORghIcSk' 
     878      SELECT CASE ( TRIM( sn_snd_icerough%cldes ) ) 
     879         CASE ( 'none' ) 
     880            ssnd(jps_rough_ice_fmd)%laction = .FALSE. 
     881            ssnd(jps_rough_ice_skin)%laction = .FALSE. 
     882         CASE ( 'ice', 'weighted ice' ) 
     883            ssnd(jps_rough_ice_fmd)%laction = .TRUE. 
     884            ssnd(jps_rough_ice_skin)%laction = .TRUE. 
     885         CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_icerough%cldes' ) 
     886      END SELECT 
     887      ! 
     888      ! 
    873889      !                                                      ! ------------------------------- ! 
    874890      !                                                      !   OPA-SAS coupling - snd by opa !    
     
    26272643#endif 
    26282644      ! 
     2645      !      
     2646      !                                                      ! ------------------------- ! 
     2647      !                                                      !   Sea ice form drag       ! 
     2648      !                                                      ! ------------------------- ! 
     2649#if defined key_cice 
     2650      IF( ssnd(jps_rough_ice_fmd)%laction ) THEN 
     2651          SELECT CASE( sn_snd_icerough%cldes ) 
     2652             CASE( 'ice' ) 
     2653                ztmp1(:,:) = rough_ice_fmd(:,:) 
     2654             CASE( 'weighted ice' ) 
     2655                ztmp1(:,:) = rough_ice_fmd(:,:) * fr_i(:,:) 
     2656             CASE default      ;  CALL ctl_stop( 'sbc_cpl_snd: wrong definition of sn_snd_icerough%cldes' ) 
     2657          END SELECT 
     2658      ENDIF 
     2659      IF( ssnd(jps_rough_ice_fmd)%laction )   CALL cpl_snd( jps_rough_ice_fmd, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ), info ) 
     2660 
     2661      IF( ssnd(jps_rough_ice_skin)%laction ) THEN 
     2662          SELECT CASE( sn_snd_icerough%cldes ) 
     2663             CASE( 'ice' ) 
     2664                ztmp1(:,:) = rough_ice_skin(:,:) 
     2665             CASE( 'weighted ice' ) 
     2666                ztmp1(:,:) = rough_ice_skin(:,:) * fr_i(:,:) 
     2667             CASE default      ;  CALL ctl_stop( 'sbc_cpl_snd: wrong definition of sn_snd_icerough%cldes' ) 
     2668          END SELECT 
     2669      ENDIF 
     2670      IF( ssnd(jps_rough_ice_skin)%laction )   CALL cpl_snd( jps_rough_ice_skin, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ), info ) 
     2671#endif 
     2672      ! 
    26292673      CALL wrk_dealloc( jpi,jpj, zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 ) 
    26302674      CALL wrk_dealloc( jpi,jpj, zotx1_in, zoty1_in ) 
  • branches/UKMO/dev_r5518_GO6_package_r8638_plus_form_drag/NEMOGCM/NEMO/OPA_SRC/SBC/sbcice_cice.F90

    r8400 r9714  
    7171#endif 
    7272   USE ice_forcing, only: frcvdr,frcvdf,frcidr,frcidf 
    73    USE ice_atmo, only: calc_strair 
     73   USE ice_atmo, only: calc_strair, z0atm, z0atmskin 
    7474 
    7575   USE CICE_InitMod 
     
    261261         snwice_mass_b(:,:) = 0.0_wp         ! no mass exchanges 
    262262      ENDIF 
     263 
     264      CALL cice2nemo(z0atm,rough_ice_fmd,'T', 1. ) 
     265      CALL cice2nemo(z0atmskin,rough_ice_skin,'T', 1. ) 
     266 
    263267      IF( .NOT. ln_rstart ) THEN 
    264268         IF( nn_ice_embd == 2 ) THEN            ! full embedment (case 2) deplete the initial ssh below sea-ice area 
     
    808812      ENDIF        
    809813 
     814! Surface roughness length for form drag 
     815      CALL cice2nemo(z0atm,rough_ice_fmd,'T', 1. ) 
     816 
     817! Surface skin roughness length 
     818      CALL cice2nemo(z0atmskin,rough_ice_skin,'T', 1. ) 
     819 
    810820      ! 
    811821      IF( nn_timing == 1 )  CALL timing_stop('cice_sbc_hadgam') 
Note: See TracChangeset for help on using the changeset viewer.