- Timestamp:
- 2020-07-03T20:46:53+02:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/ICE/iceistate.F90
r13229 r13248 66 66 INTEGER , PARAMETER :: jp_hpd = 9 ! index of pnd depth (m) 67 67 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: si ! structure of input fields (file informations, fields read) 68 ! 68 69 69 !! * Substitutions 70 70 # include "do_loop_substitute.h90" … … 108 108 REAL(wp), DIMENSION(jpi,jpj) :: zt_su_ini, zht_s_ini, zsm_i_ini, ztm_i_ini !data from namelist or nc file 109 109 REAL(wp), DIMENSION(jpi,jpj) :: zapnd_ini, zhpnd_ini !data from namelist or nc file 110 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zti_3d , zts_3d ! temporaryarrays110 REAL(wp), DIMENSION(jpi,jpj,jpl) :: zti_3d , zts_3d !locak arrays 111 111 !! 112 112 REAL(wp), DIMENSION(:,:), ALLOCATABLE :: zhi_2d, zhs_2d, zai_2d, zti_2d, zts_2d, ztsu_2d, zsi_2d, zaip_2d, zhip_2d … … 427 427 ssh(:,:,Kbb) = ssh(:,:,Kbb) - snwice_mass(:,:) * r1_rho0 428 428 ! 429 IF( .NOT.ln_linssh ) THEN 430 ! 431 WHERE( ht_0(:,:) > 0 ) ; z2d(:,:) = 1._wp + ssh(:,:,Kmm)*tmask(:,:,1) / ht_0(:,:) 432 ELSEWHERE ; z2d(:,:) = 1._wp ; END WHERE 433 ! 434 DO jk = 1,jpkm1 ! adjust initial vertical scale factors 435 e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * z2d(:,:) 436 e3t(:,:,jk,Kbb) = e3t(:,:,jk,Kmm) 437 e3t(:,:,jk,Kaa) = e3t(:,:,jk,Kmm) 438 END DO 439 ! 440 ! Reconstruction of all vertical scale factors at now and before time-steps 441 ! ========================================================================= 442 ! Horizontal scale factor interpolations 443 ! -------------------------------------- 444 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3u(:,:,:,Kbb), 'U' ) 445 CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3v(:,:,:,Kbb), 'V' ) 446 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 447 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 448 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) 449 ! Vertical scale factor interpolations 450 ! ------------------------------------ 451 CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w (:,:,:,Kmm), 'W' ) 452 CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3uw(:,:,:,Kmm), 'UW' ) 453 CALL dom_vvl_interpol( e3v(:,:,:,Kmm), e3vw(:,:,:,Kmm), 'VW' ) 454 CALL dom_vvl_interpol( e3u(:,:,:,Kbb), e3uw(:,:,:,Kbb), 'UW' ) 455 CALL dom_vvl_interpol( e3v(:,:,:,Kbb), e3vw(:,:,:,Kbb), 'VW' ) 456 ! t- and w- points depth 457 ! ---------------------- 458 !!gm not sure of that.... 459 gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 460 gdepw(:,:,1,Kmm) = 0.0_wp 461 gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 462 DO jk = 2, jpk 463 gdept(:,:,jk,Kmm) = gdept(:,:,jk-1,Kmm) + e3w(:,:,jk ,Kmm) 464 gdepw(:,:,jk,Kmm) = gdepw(:,:,jk-1,Kmm) + e3t(:,:,jk-1,Kmm) 465 gde3w(:,:,jk) = gdept(:,:,jk ,Kmm) - ssh (:,:,Kmm) 466 END DO 467 ENDIF 429 IF( .NOT.ln_linssh ) CALL dom_vvl_zgr( Kbb, Kmm, Kaa ) ! interpolation scale factor, depth and water column 430 ! !!st 431 ! IF( .NOT.ln_linssh ) THEN 432 ! ! 433 ! WHERE( ht_0(:,:) > 0 ) ; z2d(:,:) = 1._wp + ssh(:,:,Kmm)*tmask(:,:,1) / ht_0(:,:) 434 ! ELSEWHERE ; z2d(:,:) = 1._wp ; END WHERE 435 ! ! 436 ! DO jk = 1,jpkm1 ! adjust initial vertical scale factors 437 ! e3t(:,:,jk,Kmm) = e3t_0(:,:,jk) * z2d(:,:) 438 ! e3t(:,:,jk,Kbb) = e3t(:,:,jk,Kmm) 439 ! e3t(:,:,jk,Kaa) = e3t(:,:,jk,Kmm) 440 ! END DO 441 ! ! 442 ! ! Reconstruction of all vertical scale factors at now and before time-steps 443 ! ! ========================================================================= 444 ! ! Horizontal scale factor interpolations 445 ! ! -------------------------------------- 446 ! CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3u(:,:,:,Kbb), 'U' ) 447 ! CALL dom_vvl_interpol( e3t(:,:,:,Kbb), e3v(:,:,:,Kbb), 'V' ) 448 ! CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3u(:,:,:,Kmm), 'U' ) 449 ! CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3v(:,:,:,Kmm), 'V' ) 450 ! CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3f(:,:,:), 'F' ) 451 ! ! Vertical scale factor interpolations 452 ! ! ------------------------------------ 453 ! CALL dom_vvl_interpol( e3t(:,:,:,Kmm), e3w (:,:,:,Kmm), 'W' ) 454 ! CALL dom_vvl_interpol( e3u(:,:,:,Kmm), e3uw(:,:,:,Kmm), 'UW' ) 455 ! CALL dom_vvl_interpol( e3v(:,:,:,Kmm), e3vw(:,:,:,Kmm), 'VW' ) 456 ! CALL dom_vvl_interpol( e3u(:,:,:,Kbb), e3uw(:,:,:,Kbb), 'UW' ) 457 ! CALL dom_vvl_interpol( e3v(:,:,:,Kbb), e3vw(:,:,:,Kbb), 'VW' ) 458 ! ! t- and w- points depth 459 ! ! ---------------------- 460 ! !!gm not sure of that.... 461 ! gdept(:,:,1,Kmm) = 0.5_wp * e3w(:,:,1,Kmm) 462 ! gdepw(:,:,1,Kmm) = 0.0_wp 463 ! gde3w(:,:,1) = gdept(:,:,1,Kmm) - ssh(:,:,Kmm) 464 ! DO jk = 2, jpk 465 ! gdept(:,:,jk,Kmm) = gdept(:,:,jk-1,Kmm) + e3w(:,:,jk ,Kmm) 466 ! gdepw(:,:,jk,Kmm) = gdepw(:,:,jk-1,Kmm) + e3t(:,:,jk-1,Kmm) 467 ! gde3w(:,:,jk) = gdept(:,:,jk ,Kmm) - ssh (:,:,Kmm) 468 ! END DO 469 ! ENDIF 468 470 ENDIF 469 471 … … 503 505 !! 504 506 !!----------------------------------------------------------------------------- 505 INTEGER :: ios ! Local integer output status for namelist read506 INTEGER :: ifpr, ierror 507 INTEGER :: ios, ifpr, ierror ! Local integers 508 507 509 ! 508 510 CHARACTER(len=256) :: cn_dir ! Root directory for location of ice files
Note: See TracChangeset
for help on using the changeset viewer.