Changeset 9717


Ignore:
Timestamp:
2018-05-31T17:25:15+02:00 (2 years ago)
Author:
jamrae
Message:

Made 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 r9717  
    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 r9717  
    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,  & 
     
    314316         WRITE(numout,*)'      meltponds fraction & depth      = ', TRIM(sn_snd_mpnd%cldes  ), ' (', TRIM(sn_snd_mpnd%clcat   ), ')' 
    315317         WRITE(numout,*)'      sea surface freezing temp       = ', TRIM(sn_snd_sstfrz%cldes   ), ' (', TRIM(sn_snd_sstfrz%clcat   ), ')' 
     318         WRITE(numout,*)'      ice formdrag                    = ', TRIM(sn_snd_icerough%cldes   ), ' (', TRIM(sn_snd_icerough%clcat   ), ')' 
    316319 
    317320         WRITE(numout,*)'  nn_cplmodel                         = ', nn_cplmodel 
     
    868871      CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_cond%cldes' ) 
    869872      END SELECT 
    870       ! 
    871        
    872  
     873      !      
     874      !                                                      ! ------------------------- ! 
     875      !                                                      !   Sea ice form drag       ! 
     876      !                                                      ! ------------------------- ! 
     877      ssnd(jps_rough_ice_fmd )%clname = 'OIceFmd' 
     878      ssnd(jps_rough_ice_skin )%clname = 'ORghIcSk' 
     879      SELECT CASE ( TRIM( sn_snd_icerough%cldes ) ) 
     880         CASE ( 'none' ) 
     881            ssnd(jps_rough_ice_fmd)%laction = .FALSE. 
     882            ssnd(jps_rough_ice_skin)%laction = .FALSE. 
     883         CASE ( 'ice', 'weighted ice' ) 
     884            ssnd(jps_rough_ice_fmd)%laction = .TRUE. 
     885            ssnd(jps_rough_ice_skin)%laction = .TRUE. 
     886         CASE default   ;   CALL ctl_stop( 'sbc_cpl_init: wrong definition of sn_snd_icerough%cldes' ) 
     887      END SELECT 
     888      ! 
     889      ! 
    873890      !                                                      ! ------------------------------- ! 
    874891      !                                                      !   OPA-SAS coupling - snd by opa !    
     
    26272644#endif 
    26282645      ! 
     2646      !      
     2647      !                                                      ! ------------------------- ! 
     2648      !                                                      !   Sea ice form drag       ! 
     2649      !                                                      ! ------------------------- ! 
     2650#if defined key_cice 
     2651      IF( ssnd(jps_rough_ice_fmd)%laction ) THEN 
     2652          SELECT CASE( sn_snd_icerough%cldes ) 
     2653             CASE( 'ice' ) 
     2654                ztmp1(:,:) = rough_ice_fmd(:,:) 
     2655             CASE( 'weighted ice' ) 
     2656                ztmp1(:,:) = rough_ice_fmd(:,:) * fr_i(:,:) 
     2657             CASE default      ;  CALL ctl_stop( 'sbc_cpl_snd: wrong definition of sn_snd_icerough%cldes' ) 
     2658          END SELECT 
     2659      ENDIF 
     2660      IF( ssnd(jps_rough_ice_fmd)%laction )   CALL cpl_snd( jps_rough_ice_fmd, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ), info ) 
     2661 
     2662      IF( ssnd(jps_rough_ice_skin)%laction ) THEN 
     2663          SELECT CASE( sn_snd_icerough%cldes ) 
     2664             CASE( 'ice' ) 
     2665                ztmp1(:,:) = rough_ice_skin(:,:) 
     2666             CASE( 'weighted ice' ) 
     2667                ztmp1(:,:) = rough_ice_skin(:,:) * fr_i(:,:) 
     2668             CASE default      ;  CALL ctl_stop( 'sbc_cpl_snd: wrong definition of sn_snd_icerough%cldes' ) 
     2669          END SELECT 
     2670      ENDIF 
     2671      IF( ssnd(jps_rough_ice_skin)%laction )   CALL cpl_snd( jps_rough_ice_skin, isec, RESHAPE ( ztmp1, (/jpi,jpj,1/) ), info ) 
     2672#endif 
     2673      ! 
    26292674      CALL wrk_dealloc( jpi,jpj, zfr_l, ztmp1, ztmp2, zotx1, zoty1, zotz1, zitx1, zity1, zitz1 ) 
    26302675      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 r9717  
    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 
    810819      ! 
    811820      IF( nn_timing == 1 )  CALL timing_stop('cice_sbc_hadgam') 
Note: See TracChangeset for help on using the changeset viewer.