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 3414 for branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2 – NEMO

Ignore:
Timestamp:
2012-06-15T14:53:43+02:00 (12 years ago)
Author:
acc
Message:

Branch: dev_r3385_NOCS04_HAMF; #665. Stage 3 of 2012 development: First working version with (optionally) active embedding. Still some stability questions when running the LIM2-EVP, ORCA2 test-case with full embedding. Works with reduced (halved) timestep. Still investigating.

Location:
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/ice_2.F90

    r3396 r3414  
    158158         &                       rdm_ice(jpi,jpj) , rdq_ice(jpi,jpj) ,     & 
    159159         &     qldif (jpi,jpj) , qcmif  (jpi,jpj) , fdtcn  (jpi,jpj) ,     & 
    160          &     qldif (jpi,jpj) , qcmif  (jpi,jpj) , fdtcn  (jpi,jpj) ,     & 
    161160         &     qdtcn (jpi,jpj) , thcm   (jpi,jpj)                    , STAT=ierr(4) ) 
    162161 
  • branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limrhg_2.F90

    r3294 r3414  
    3030   USE in_out_manager ! I/O manager 
    3131   USE prtctl         ! Print control 
     32   USE oce, ONLY : snwice_mass, snwice_mass_b 
    3233 
    3334   IMPLICIT NONE 
     
    8081      REAL(wp) ::   zs21_11, zs21_12, zs21_21, zs21_22 
    8182      REAL(wp) ::   zs22_11, zs22_12, zs22_21, zs22_22 
     83      REAL(wp) ::   zintb, zintn 
    8284      REAL(wp), POINTER, DIMENSION(:,:) ::   zfrld, zmass, zcorl 
    8385      REAL(wp), POINTER, DIMENSION(:,:) ::   za1ct, za2ct, zresr 
    8486      REAL(wp), POINTER, DIMENSION(:,:) ::   zc1u, zc1v, zc2u, zc2v 
    85       REAL(wp), POINTER, DIMENSION(:,:) ::   zsang 
     87      REAL(wp), POINTER, DIMENSION(:,:) ::   zsang, zpice 
    8688      REAL(wp), POINTER, DIMENSION(:,:) ::   zu0, zv0 
    8789      REAL(wp), POINTER, DIMENSION(:,:) ::   zu_n, zv_n 
     
    9395       
    9496      CALL wrk_alloc( jpi,jpj, zfrld, zmass, zcorl, za1ct, za2ct, zresr ) 
    95       CALL wrk_alloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang ) 
     97      CALL wrk_alloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang, zpice ) 
    9698      CALL wrk_alloc( jpi,jpj+2, zu0, zv0, zu_n, zv_n, zu_a, zv_a, zviszeta, zviseta, kjstart = 0 ) 
    9799      CALL wrk_alloc( jpi,jpj+2, zzfrld, zztms, zi1, zi2, zmasst, zpresh, kjstart = 0 ) 
     
    129131!i    zviszeta(:,jpj+1) = 0._wp    ;    zviseta(:,jpj+1) = 0._wp 
    130132 
     133      IF( nn_ice_embd == 2 ) THEN             !== embedded sea ice: compute representative ice top surface ==! 
     134          ! 
     135          ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[n/nn_fsbc], n=0,nn_fsbc-1} 
     136          !                                               = (1/nn_fsbc)^2 * {SUM[n], n=0,nn_fsbc-1} 
     137         zintn = REAL( nn_fsbc - 1 ) / REAL( nn_fsbc ) * 0.5_wp 
     138          ! 
     139          ! average interpolation coeff as used in dynspg = (1/nn_fsbc) * {SUM[1-n/nn_fsbc], n=0,nn_fsbc-1} 
     140          !                                               = (1/nn_fsbc)^2 * (nn_fsbc^2 - {SUM[n], n=0,nn_fsbc-1}) 
     141         zintb = REAL( nn_fsbc + 1 ) / REAL( nn_fsbc ) * 0.5_wp 
     142          ! 
     143         zpice(:,:) = ssh_m(:,:) + (  zintn * snwice_mass(:,:) +  zintb * snwice_mass_b(:,:)  ) * r1_rau0 
     144          ! 
     145         ! 
     146      ELSE                                    !== non-embedded sea ice: use ocean surface for slope calculation ==! 
     147         zpice(:,:) = ssh_m(:,:) 
     148      ENDIF 
    131149 
    132150      ! Ice mass, ice strength, and wind stress at the center            | 
     
    196214 
    197215            ! Gradient of the sea surface height 
    198             zgsshx =  (   (ssh_m(ji  ,jj  ) - ssh_m(ji-1,jj  ))/e1u(ji-1,jj  )   & 
    199                &       +  (ssh_m(ji  ,jj-1) - ssh_m(ji-1,jj-1))/e1u(ji-1,jj-1)   ) * 0.5_wp 
    200             zgsshy =  (   (ssh_m(ji  ,jj  ) - ssh_m(ji  ,jj-1))/e2v(ji  ,jj-1)   & 
    201                &       +  (ssh_m(ji-1,jj  ) - ssh_m(ji-1,jj-1))/e2v(ji-1,jj-1)   ) * 0.5_wp 
     216            zgsshx =  (   (zpice(ji  ,jj  ) - zpice(ji-1,jj  ))/e1u(ji-1,jj  )   & 
     217               &       +  (zpice(ji  ,jj-1) - zpice(ji-1,jj-1))/e1u(ji-1,jj-1)   ) * 0.5_wp 
     218            zgsshy =  (   (zpice(ji  ,jj  ) - zpice(ji  ,jj-1))/e2v(ji  ,jj-1)   & 
     219               &       +  (zpice(ji-1,jj  ) - zpice(ji-1,jj-1))/e2v(ji-1,jj-1)   ) * 0.5_wp 
    202220 
    203221            ! Computation of the velocity field taking into account the ice-ice interaction.                                  
     
    575593 
    576594      CALL wrk_dealloc( jpi,jpj, zfrld, zmass, zcorl, za1ct, za2ct, zresr ) 
    577       CALL wrk_dealloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang ) 
     595      CALL wrk_dealloc( jpi,jpj, zc1u , zc1v , zc2u , zc2v , zsang, zpice ) 
    578596      CALL wrk_dealloc( jpi,jpj+2, zu0, zv0, zu_n, zv_n, zu_a, zv_a, zviszeta, zviseta, kjstart = 0 ) 
    579597      CALL wrk_dealloc( jpi,jpj+2, zzfrld, zztms, zi1, zi2, zmasst, zpresh, kjstart = 0 ) 
  • branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/LIM_SRC_2/limsbc_2.F90

    r3402 r3414  
    470470      ENDIF 
    471471      IF( nn_ice_embd == 2 .AND.          &  ! full embedment (case 2) & no restart :  
    472          &   .NOT.ln_rstart ) THEN           ! deplete the initial ssh belew sea-ice area 
     472         &   .NOT.ln_rstart ) THEN           ! deplete the initial ssh below sea-ice area 
    473473         sshn(:,:) = sshn(:,:) - snwice_mass(:,:) * r1_rau0 
    474474         sshb(:,:) = sshb(:,:) - snwice_mass(:,:) * r1_rau0 
Note: See TracChangeset for help on using the changeset viewer.