- Timestamp:
- 2020-10-09T14:04:13+02:00 (4 years ago)
- Location:
- NEMO/trunk/tests/ISOMIP+/MY_SRC
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/tests/ISOMIP+/MY_SRC/dtatsd.F90
r13295 r13583 191 191 ENDIF 192 192 ! 193 DO_2D( 1, 1, 1, 1 ) 193 DO_2D( 1, 1, 1, 1 ) ! vertical interpolation of T & S 194 194 DO jk = 1, jpk ! determines the intepolated T-S profiles at each (i,j) points 195 195 zl = gdept_0(ji,jj,jk) -
NEMO/trunk/tests/ISOMIP+/MY_SRC/eosbn2.F90
r13295 r13583 182 182 !! * Substitutions 183 183 # include "do_loop_substitute.h90" 184 # include "domzgr_substitute.h90" 184 185 !!---------------------------------------------------------------------- 185 186 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 965 966 IF( ln_timing ) CALL timing_start('bn2') 966 967 ! 967 DO_3D( 1, 1, 1, 1, 2, jpkm1 ) 968 DO_3D( 1, 1, 1, 1, 2, jpkm1 ) ! interior points only (2=< jk =< jpkm1 ); surface and bottom value set to zero one for all in istate.F90 968 969 zrw = ( gdepw(ji,jj,jk ,Kmm) - gdept(ji,jj,jk,Kmm) ) & 969 970 & / ( gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm) ) … … 1723 1724 ! 1724 1725 CASE( np_leos ) !== Linear ISOMIP EOS ==! 1726 1727 r1_S0 = 0.875_wp/35.16504_wp ! Used to convert CT in potential temperature when using bulk formulae (eos_pt_from_ct) 1728 1725 1729 IF(lwp) THEN 1726 1730 WRITE(numout,*) … … 1731 1735 WRITE(numout,*) ' saline cont. coef. rn_b0 = ', rn_b0 1732 1736 ENDIF 1737 l_useCT = .TRUE. ! Use conservative temperature 1733 1738 ! 1734 1739 CASE DEFAULT !== ERROR in neos ==! -
NEMO/trunk/tests/ISOMIP+/MY_SRC/isf_oce.F90
r12077 r13583 75 75 ! 76 76 ! 2.1 -------- ice shelf cavity parameter -------------- 77 LOGICAL , PUBLIC :: l_isfoasis 77 LOGICAL , PUBLIC :: l_isfoasis = .FALSE. 78 78 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: risfload !: ice shelf load 79 79 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: fwfisf_oasis -
NEMO/trunk/tests/ISOMIP+/MY_SRC/isfcavgam.F90
r12905 r13583 30 30 PUBLIC isfcav_gammats 31 31 32 # include "domzgr_substitute.h90" 32 33 !!---------------------------------------------------------------------- 33 34 !! NEMO/OCE 4.0 , NEMO Consortium (2018) -
NEMO/trunk/tests/ISOMIP+/MY_SRC/isfstp.F90
r12905 r13583 13 13 !! isfstp : compute iceshelf melt and heat flux 14 14 !!---------------------------------------------------------------------- 15 !16 15 USE isf_oce ! isf variables 17 16 USE isfload, ONLY: isf_load ! ice shelf load … … 21 20 USE isfcpl , ONLY: isfcpl_rst_write, isfcpl_init ! isf variables 22 21 23 USE dom_oce, ONLY: ht, e3t, ln_isfcav, ln_linssh ! ocean space and time domain 22 USE dom_oce ! ocean space and time domain 23 USE oce , ONLY: ssh ! sea surface height 24 24 USE domvvl, ONLY: ln_vvl_zstar ! zstar logical 25 25 USE zdfdrg, ONLY: r_Cdmin_top, r_ke0_top ! vertical physics: top/bottom drag coef. … … 31 31 32 32 IMPLICIT NONE 33 34 33 PRIVATE 35 34 36 35 PUBLIC isf_stp, isf_init, isf_nam ! routine called in sbcmod and divhor 37 36 37 !! * Substitutions 38 # include "domzgr_substitute.h90" 38 39 !!---------------------------------------------------------------------- 39 40 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 41 42 !! Software governed by the CeCILL license (see ./LICENSE) 42 43 !!---------------------------------------------------------------------- 44 43 45 CONTAINS 44 46 … … 60 62 INTEGER, INTENT(in) :: kt ! ocean time step 61 63 INTEGER, INTENT(in) :: Kmm ! ocean time level index 64 !!---------------------------------------------------------------------- 65 INTEGER :: jk ! loop index 66 REAL(wp), DIMENSION(jpi,jpj,jpk) :: ze3t ! e3t 62 67 !!--------------------------------------------------------------------- 63 68 ! … … 78 83 ! 1.2: compute misfkb, rhisf_tbl, rfrac (deepest level, thickness, fraction of deepest cell affected by tbl) 79 84 rhisf_tbl_cav(:,:) = rn_htbl * mskisf_cav(:,:) 80 CALL isf_tbl_lvl(ht, e3t(:,:,:,Kmm), misfkt_cav, misfkb_cav, rhisf_tbl_cav, rfrac_tbl_cav) 85 DO jk = 1, jpk 86 ze3t(:,:,jk) = e3t(:,:,jk,Kmm) 87 END DO 88 CALL isf_tbl_lvl(ht(:,:), ze3t, misfkt_cav, misfkb_cav, rhisf_tbl_cav, rfrac_tbl_cav) 81 89 ! 82 90 ! 1.3: compute ice shelf melt … … 100 108 ! by simplicity, we assume the top level where param applied do not change with time (done in init part) 101 109 rhisf_tbl_par(:,:) = rhisf0_tbl_par(:,:) 102 CALL isf_tbl_lvl(ht, e3t(:,:,:,Kmm), misfkt_par, misfkb_par, rhisf_tbl_par, rfrac_tbl_par) 110 DO jk = 1, jpk 111 ze3t(:,:,jk) = e3t(:,:,jk,Kmm) 112 END DO 113 CALL isf_tbl_lvl(ht(:,:), ze3t, misfkt_par, misfkb_par, rhisf_tbl_par, rfrac_tbl_par) 103 114 ! 104 115 ! 2.3: compute ice shelf melt -
NEMO/trunk/tests/ISOMIP+/MY_SRC/istate.F90
r13295 r13583 24 24 USE dom_oce ! ocean space and time domain 25 25 USE daymod ! calendar 26 USE divhor ! horizontal divergence (div_hor routine)27 26 USE dtatsd ! data temperature and salinity (dta_tsd routine) 28 27 USE dtauvd ! data: U & V current (dta_uvd routine) … … 35 34 USE lib_mpp ! MPP library 36 35 USE restart ! restart 36 #if defined key_agrif 37 USE agrif_oce_interp 38 USE agrif_oce 39 #endif 37 40 38 41 IMPLICIT NONE … … 43 46 !! * Substitutions 44 47 # include "do_loop_substitute.h90" 48 # include "domzgr_substitute.h90" 45 49 !!---------------------------------------------------------------------- 46 50 !! NEMO/OCE 4.0 , NEMO Consortium (2018) … … 59 63 ! 60 64 INTEGER :: ji, jj, jk ! dummy loop indices 65 REAL(wp), DIMENSION(jpi,jpj,jpk) :: zgdept ! 3D table !!st patch to use gdept subtitute 61 66 !!gm see comment further down 62 67 REAL(wp), ALLOCATABLE, DIMENSION(:,:,:,:) :: zuvd ! U & V data workspace … … 70 75 !!gm Why not include in the first call of dta_tsd ? 71 76 !!gm probably associated with the use of internal damping... 72 77 CALL dta_tsd_init ! Initialisation of T & S input data 73 78 !!gm to be moved in usrdef of C1D case 74 79 ! IF( lk_c1d ) CALL dta_uvd_init ! Initialization of U & V input data … … 84 89 #endif 85 90 91 #if defined key_agrif 92 IF ( (.NOT.Agrif_root()).AND.ln_init_chfrpar ) THEN 93 numror = 0 ! define numror = 0 -> no restart file to read 94 ln_1st_euler = .true. ! Set time-step indicator at nit000 (euler forward) 95 CALL day_init 96 CALL agrif_istate( Kbb, Kmm, Kaa ) ! Interp from parent 97 ! 98 ts (:,:,:,:,Kmm) = ts (:,:,:,:,Kbb) 99 ssh (:,:,Kmm) = ssh(:,:,Kbb) 100 uu (:,:,:,Kmm) = uu (:,:,:,Kbb) 101 vv (:,:,:,Kmm) = vv (:,:,:,Kbb) 102 ELSE 103 #endif 86 104 IF( ln_rstart ) THEN ! Restart from a file 87 105 ! ! ------------------- … … 100 118 ! 101 119 ssh(:,:,Kbb) = 0._wp ! set the ocean at rest 120 uu (:,:,:,Kbb) = 0._wp 121 vv (:,:,:,Kbb) = 0._wp 122 ! 102 123 IF( ll_wd ) THEN 103 124 ssh(:,:,Kbb) = -ssh_ref ! Added in 30 here for bathy that adds 30 as Iterative test CEOD … … 111 132 END_2D 112 133 ENDIF 113 uu (:,:,:,Kbb) = 0._wp 114 vv (:,:,:,Kbb) = 0._wp 115 ! 134 ! 116 135 ELSE ! user defined initial T and S 117 CALL usr_def_istate( gdept(:,:,:,Kbb), tmask, ts(:,:,:,:,Kbb), uu(:,:,:,Kbb), vv(:,:,:,Kbb), ssh(:,:,Kbb) ) 136 DO jk = 1, jpk 137 zgdept(:,:,jk) = gdept(:,:,jk,Kbb) 138 END DO 139 CALL usr_def_istate( zgdept, tmask, ts(:,:,:,:,Kbb), uu(:,:,:,Kbb), vv(:,:,:,Kbb), ssh(:,:,Kbb) ) 118 140 ENDIF 119 141 ts (:,:,:,:,Kmm) = ts (:,:,:,:,Kbb) ! set now values from to before ones … … 121 143 uu (:,:,:,Kmm) = uu (:,:,:,Kbb) 122 144 vv (:,:,:,Kmm) = vv (:,:,:,Kbb) 123 hdiv(:,:,jpk) = 0._wp ! bottom divergence set one for 0 to zero at jpk level124 CALL div_hor( 0, Kbb, Kmm ) ! compute interior hdiv value125 !!gm hdiv(:,:,:) = 0._wp126 145 127 146 !!gm POTENTIAL BUG : 128 147 !!gm ISSUE : if ssh(:,:,Kbb) /= 0 then, in non linear free surface, the e3._n, e3._b should be recomputed 129 !! as well as gdept and gdepw.... !!!!!148 !! as well as gdept_ and gdepw_.... !!!!! 130 149 !! ===>>>> probably a call to domvvl initialisation here.... 131 150 … … 151 170 ! 152 171 ENDIF 172 #if defined key_agrif 173 ENDIF 174 #endif 153 175 ! 154 176 ! Initialize "now" and "before" barotropic velocities: -
NEMO/trunk/tests/ISOMIP+/MY_SRC/sbcfwb.F90
r13379 r13583 17 17 USE dom_oce ! ocean space and time domain 18 18 USE sbc_oce ! surface ocean boundary condition 19 USE isf_oce 19 USE isf_oce , ONLY : fwfisf_cav, fwfisf_par, ln_isfcpl, ln_isfcpl_cons, risfcpl_cons_ssh ! ice shelf melting contribution 20 20 USE sbc_ice , ONLY : snwice_mass, snwice_mass_b, snwice_fmass 21 21 USE phycst ! physical constants … … 71 71 REAL(wp), ALLOCATABLE, DIMENSION(:,:) :: ztmsk_tospread, zerp_cor ! - - 72 72 REAL(wp) ,DIMENSION(1) :: z_fwfprv 73 COMPLEX( wp),DIMENSION(1) :: y_fwfnow73 COMPLEX(dp),DIMENSION(1) :: y_fwfnow 74 74 !!---------------------------------------------------------------------- 75 75 ! … … 206 206 ! 207 207 !!gm ===>>>> lbc_lnk should be useless as all the computation is done over the whole domain ! 208 CALL lbc_lnk( 'sbcfwb', zerp_cor, 'T', 1. )208 CALL lbc_lnk( 'sbcfwb', zerp_cor, 'T', 1.0_wp ) 209 209 ! 210 210 emp(:,:) = emp(:,:) + zerp_cor(:,:)
Note: See TracChangeset
for help on using the changeset viewer.