- Timestamp:
- 2011-03-09T16:02:46+01:00 (13 years ago)
- Location:
- branches/dev_r2586_dynamic_mem/NEMOGCM
- Files:
-
- 17 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_r2586_dynamic_mem/NEMOGCM/CONFIG/GYRE/cpp_GYRE.fcm
r2528 r2678 1 bld::tool::fppkeys key_gyre key_dynspg_flt key_ldfslp key_zdftke key_vectopt_loop key_iomput key_nproci=1 key_nprocj=11 bld::tool::fppkeys key_gyre key_dynspg_flt key_ldfslp key_zdftke key_vectopt_loop key_iomput -
branches/dev_r2586_dynamic_mem/NEMOGCM/CONFIG/GYRE_LOBSTER/cpp_GYRE_LOBSTER.fcm
r2528 r2678 1 bld::tool::fppkeys key_gyre key_dynspg_flt key_ldfslp key_zdftke key_vectopt_loop key_top key_lobster key_diatrc key_iomput key_nproci=1 key_nprocj=11 bld::tool::fppkeys key_gyre key_dynspg_flt key_ldfslp key_zdftke key_vectopt_loop key_top key_lobster key_diatrc key_iomput -
branches/dev_r2586_dynamic_mem/NEMOGCM/CONFIG/ORCA2_LIM/cpp_ORCA2_LIM.fcm
r2544 r2678 1 bld::tool::fppkeys key_trabbl key_vectopt_loop key_orca_r2 key_lim2 key_dynspg_flt key_diaeiv key_ldfslp key_traldf_c2d key_traldf_eiv key_dynldf_c3d key_dtatem key_dtasal key_tradmp key_zdftke key_zdfddm key_zdftmx key_iomput key_nproci=1 key_nprocj=11 bld::tool::fppkeys key_trabbl key_vectopt_loop key_orca_r2 key_lim2 key_dynspg_flt key_diaeiv key_ldfslp key_traldf_c2d key_traldf_eiv key_dynldf_c3d key_dtatem key_dtasal key_tradmp key_zdftke key_zdfddm key_zdftmx key_iomput -
branches/dev_r2586_dynamic_mem/NEMOGCM/CONFIG/ORCA2_LIM_PISCES/cpp_ORCA2_LIM_PISCES.fcm
r2528 r2678 1 bld::tool::fppkeys key_trabbl key_vectopt_loop key_orca_r2 key_lim2 key_dynspg_flt key_diaeiv key_ldfslp key_traldf_c2d key_traldf_eiv key_dynldf_c3d key_dtatem key_dtasal key_tradmp key_zdftke key_zdfddm key_top key_pisces key_dtatrc key_diatrc key_iomput key_nproci=1 key_nprocj=11 bld::tool::fppkeys key_trabbl key_vectopt_loop key_orca_r2 key_lim2 key_dynspg_flt key_diaeiv key_ldfslp key_traldf_c2d key_traldf_eiv key_dynldf_c3d key_dtatem key_dtasal key_tradmp key_zdftke key_zdfddm key_top key_pisces key_dtatrc key_diatrc key_iomput -
branches/dev_r2586_dynamic_mem/NEMOGCM/CONFIG/ORCA2_OFF_PISCES/cpp_ORCA2_OFF_PISCES.fcm
r2528 r2678 1 bld::tool::fppkeys key_trabbl key_vectopt_loop key_orca_r2 key_dynspg_flt key_ldfslp key_traldf_c2d key_traldf_eiv key_zdftke key_top key_offline key_pisces key_dtatrc key_diatrc key_iomput key_nproci=1 key_nprocj=11 bld::tool::fppkeys key_trabbl key_vectopt_loop key_orca_r2 key_dynspg_flt key_ldfslp key_traldf_c2d key_traldf_eiv key_zdftke key_top key_offline key_pisces key_dtatrc key_diatrc key_iomput -
branches/dev_r2586_dynamic_mem/NEMOGCM/CONFIG/POMME/EXP00/namelist
r2528 r2678 192 192 &namsbc_core ! namsbc_core CORE bulk formulea 193 193 !----------------------------------------------------------------------- 194 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim! 'yearly'/ ! weights ! rotation !195 ! ! ! (if <0 months) ! name ! (logical) ! (T/F)! 'monthly' ! filename ! pairing !196 sn_wndi = 'u_10.15JUNE2009_orca2' , 6 , 'U_10_MOD', .false. , .true. , 'yearly' , '' , 'Uwnd'197 sn_wndj = 'v_10.15JUNE2009_orca2' , 6 , 'V_10_MOD', .false. , .true. , 'yearly' , '' , 'Vwnd'198 sn_qsr = 'ncar_rad.15JUNE2009_orca2' , 24 , 'SWDN_MOD', .false. , .true. , 'yearly' , '', ''199 sn_qlw = 'ncar_rad.15JUNE2009_orca2' , 24 , 'LWDN_MOD', .false. , .true. , 'yearly' , '', ''200 sn_tair = 't_10.15JUNE2009_orca2' , 6 , 'T_10_MOD', .false. , .true. , 'yearly' , '', ''201 sn_humi = 'q_10.15JUNE2009_orca2' , 6 , 'Q_10_MOD', .false. , .true. , 'yearly' , '', ''202 sn_prec = 'ncar_precip.15JUNE2009_orca2', -1 , 'PRC_MOD1', .false. , .true. , 'yearly' , '', ''203 sn_snow = 'ncar_precip.15JUNE2009_orca2', -1 , 'SNOW' , .false. , .true. , 'yearly' , '', ''204 sn_tdif = 'taudif_core' , 24 , 'taudif' , .false. , .true. , 'yearly' , '' ,''205 194 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! 195 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! 196 sn_wndi = 'u10_1988' , 24 , 'u10' , .true. , .true. , 'yearly' , '' 197 sn_wndj = 'v10_1988' , 24 , 'v10' , .true. , .true. , 'yearly' , '' 198 sn_qsr = 'radsw_1988' , 24 , 'radsw' , .true. , .true. , 'yearly' , '' 199 sn_qlw = 'radlw_1988' , 24 , 'radlw' , .true. , .true. , 'yearly' , '' 200 sn_tair = 't2_1988.nc' , 24 , 't2' , .true. , .true. , 'yearly' , '' 201 sn_humi = 'q2_1988' , 24 , 'q2' , .true. , .true. , 'yearly' , '' 202 sn_prec = 'precip_1988.nc' , -1 , 'precip' , .true. , .true. , 'yearly' , '' 203 sn_snow = 'precip_1988.nc' , -1 , 'precip' , .true. , .true. , 'yearly' , '' 204 sn_tdif = 'taudif_core' , 24 , 'taudif' , .true. , .true. , 'yearly' ,'' 205 ! 206 206 cn_dir = './' ! root directory for the location of the bulk files 207 207 ln_2m = .false. ! air temperature and humidity referenced at 2m (T) instead 10m (F) … … 260 260 &namsbc_rnf ! runoffs namelist surface boundary condition 261 261 !----------------------------------------------------------------------- 262 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation !263 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing !264 sn_rnf = 'runoff_core_monthly', -1, 'sorunoff', .true. , .true. , 'yearly' , '' , ''265 sn_cnf = 'runoff_core_monthly', 0, 'socoefr0', .false. , .true. , 'yearly' , '' , ''266 sn_s_rnf = 'runoffs' , 24, 'rosaline', .true. , .true. , 'yearly' , '' , ''267 sn_t_rnf = 'runoffs' , 24, 'rotemper', .true. , .true. , 'yearly' , '' , ''268 sn_dep_rnf = 'runoffs' , 0, 'rodepth' , .false. , .true. , 'yearly' , '' , ''262 ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! 263 ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! 264 sn_rnf = 'runoff_core_monthly', -1 , 'sorunoff', .true. , .true. , 'yearly' , '' , '' 265 sn_cnf = 'runoff_core_monthly', 0 , 'socoefr0', .false. , .true. , 'yearly' , '' , '' 266 sn_s_rnf = 'runoffs' , 24 , 'rosaline', .true. , .true. , 'yearly' , '' , '' 267 sn_t_rnf = 'runoffs' , 24 , 'rotemper', .true. , .true. , 'yearly' , '' , '' 268 sn_dep_rnf = 'runoffs' , 0 , 'rodepth' , .false. , .true. , 'yearly' , '' , '' 269 269 270 270 cn_dir = './' ! root directory for the location of the runoff files … … 298 298 cn_dir = './' ! root directory for the location of the runoff files 299 299 nn_sstr = 0 ! add a retroaction term in the surface heat flux (=1) or not (=0) 300 nn_sssr = 2! add a damping term in the surface freshwater flux (=2)300 nn_sssr = 1 ! add a damping term in the surface freshwater flux (=2) 301 301 ! or to SSS only (=1) or no damping term (=0) 302 302 rn_dqdt = -40. ! magnitude of the retroaction on temperature [W/m2/K] … … 601 601 rn_emin = 1.e-6 ! minimum value of tke [m2/s2] 602 602 rn_emin0 = 1.e-4 ! surface minimum value of tke [m2/s2] 603 nn_mxl = 2! mixing length: = 0 bounded by the distance to surface and bottom603 nn_mxl = 3 ! mixing length: = 0 bounded by the distance to surface and bottom 604 604 ! = 1 bounded by the local vertical scale factor 605 605 ! = 2 first vertical derivative of mixing length bounded by 1 … … 610 610 ln_lc = .true. ! Langmuir cell parameterisation (Axell 2002) 611 611 rn_lc = 0.15 ! coef. associated to Langmuir cells 612 nn_etau = 1! penetration of tke below the mixed layer (ML) due to internal & intertial waves612 nn_etau = 0 ! penetration of tke below the mixed layer (ML) due to internal & intertial waves 613 613 ! = 0 no penetration 614 614 ! = 1 add a tke source below the ML -
branches/dev_r2586_dynamic_mem/NEMOGCM/CONFIG/POMME/cpp_POMME.fcm
r2528 r2678 1 bld::tool::fppkeys key_pomme_r025 key_dynspg_flt key_zdftke key_dtatem key_dtasal key_traldf_c2d key_dynldf_c2d key_ldfslp key_obc key_iomput key_nproci=1 key_nprocj=1 2 1 bld::tool::fppkeys key_pomme_r025 key_dynspg_flt key_zdftke key_dtatem key_dtasal key_traldf_c2d key_dynldf_c2d key_ldfslp key_obc key_iomput -
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/LIM_SRC_3/limthd_dif.F90
r2612 r2678 79 79 !! profile of the ice/snow layers : z_i, z_s 80 80 !! total ice/snow thickness : ht_i_b, ht_s_b 81 !! 82 !! ** External : 83 !! 84 !! ** References : 85 !! 86 !! ** History : 87 !! (02-2003) Martin Vancoppenolle, Louvain-la-Neuve, Belgium 88 !! (06-2005) Martin Vancoppenolle, 3d version 89 !! (11-2006) Vectorized by Xavier Fettweis (UCL-ASTR) 90 !! (04-2007) Energy conservation tested by M. Vancoppenolle 81 91 !!------------------------------------------------------------------ 82 92 INTEGER , INTENT (in) :: & … … 333 343 END DO 334 344 END DO 345 ENDIF 346 347 IF ( thcon_i_swi .EQ. 1 ) THEN ! Pringle (0.011/2=0.0055) 348 DO layer = 1, nlay_i-1 349 DO ji = kideb , kiut 350 ztcond_i(ji,layer) = rcdic + 0.09*( s_i_b(ji,layer) & 351 + s_i_b(ji,layer+1) ) / MIN(-2.0*zeps, & 352 t_i_b(ji,layer)+t_i_b(ji,layer+1)-2.0*rtt) - & 353 0.0055* ( t_i_b(ji,layer) + t_i_b(ji,layer+1) - 2.0*rtt ) 354 ztcond_i(ji,layer) = MAX(ztcond_i(ji,layer),zkimin) 355 END DO 356 END DO 357 ENDIF 358 359 IF ( thcon_i_swi .EQ. 0 ) THEN ! Untersteiner 335 360 DO ji = kideb , kiut 336 361 ztcond_i(ji,nlay_i) = rcdic + zbeta*s_i_b(ji,nlay_i) / & -
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp.F90
r2633 r2678 815 815 WRITE(*,*) 'ldf_slp: You should not have seen this print! error?', kt, prd(1,1,1), pn2(1,1,1) 816 816 END SUBROUTINE ldf_slp 817 SUBROUTINE ldf_slp_grif( kt ) ! Dummy routine 818 INTEGER, INTENT(in) :: kt 819 WRITE(*,*) 'ldf_slp_grif: You should not have seen this print! error?', kt 820 END SUBROUTINE ldf_slp_grif 817 821 SUBROUTINE ldf_slp_init ! Dummy routine 818 822 END SUBROUTINE ldf_slp_init -
branches/dev_r2586_dynamic_mem/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp.F90
r2636 r2678 15 15 !! 3.2 ! 2009-03 (G. Madec) heat and salt content trends 16 16 !! 3.3 ! 2010-06 (C. Ethe, G. Madec) Merge TRA-TRC 17 !! - ! 2011-02 (A. Coward, C. Ethe, G. Madec) improvment of surface boundary condition 17 18 !!---------------------------------------------------------------------- 18 19 … … 40 41 PUBLIC tra_zdf_imp ! routine called by step.F90 41 42 43 REAL(wp) :: r_vvl ! variable volume indicator, =1 if lk_vvl=T, =0 otherwise 44 42 45 !! * Substitutions 43 46 # include "domzgr_substitute.h90" … … 56 59 !! *** ROUTINE tra_zdf_imp *** 57 60 !! 58 !! ** Purpose : Compute the trend due to the vertical tracer diffusion 59 !! including the vertical component of lateral mixing (only for 2nd 60 !! order operator, for fourth order it is already computed and add 61 !! to the general trend in traldf.F) and add it to the general trend 62 !! of the tracer equations. 63 !! 64 !! ** Method : The vertical component of the lateral diffusive trends 65 !! is provided by a 2nd order operator rotated along neutral or geo- 66 !! potential surfaces to which an eddy induced advection can be 67 !! added. It is computed using before fields (forward in time) and 68 !! isopycnal or geopotential slopes computed in routine ldfslp. 69 !! 70 !! Second part: vertical trend associated with the vertical physics 71 !! =========== (including the vertical flux proportional to dk[t] 72 !! associated with the lateral mixing, through the 73 !! update of avt) 74 !! The vertical diffusion of the tracer t is given by: 75 !! difft = dz( avt dz(t) ) = 1/e3t dk+1( avt/e3w dk(t) ) 61 !! ** Purpose : Compute the after tracer through a implicit computation 62 !! of the vertical tracer diffusion (including the vertical component 63 !! of lateral mixing (only for 2nd order operator, for fourth order 64 !! it is already computed and add to the general trend in traldf) 65 !! 66 !! ** Method : The vertical diffusion of the tracer t is given by: 67 !! difft = dz( avt dz(t) ) = 1/e3t dk+1( avt/e3w dk(t) ) 76 68 !! It is computed using a backward time scheme (t=ta). 69 !! If lk_zdfddm=T, use avs for salinity or for passive tracers 77 70 !! Surface and bottom boundary conditions: no diffusive flux on 78 71 !! both tracers (bottom, applied through the masked field avt). 79 !! Add this trend to the general trend ta,sa : 80 !! ta = ta + dz( avt dz(t) ) 81 !! if lk_zdfddm=T, use avs for salinity or for passive tracers 82 !! (sa = sa + dz( avs dz(t) ) 83 !! 84 !! Third part: recover avt resulting from the vertical physics 85 !! ========== alone, for further diagnostics (for example to 86 !! compute the turbocline depth in zdfmxl.F90). 87 !! if lk_zdfddm=T, use avt = zavt 88 !! (avs = zavs if lk_zdfddm=T ) 89 !! 90 !! ** Action : - Update (ta) with before vertical diffusion trend 72 !! If iso-neutral mixing, add to avt the contribution due to lateral mixing. 73 !! 74 !! ** Action : - pta becomes the after tracer 91 75 !!--------------------------------------------------------------------- 92 76 USE oce , ONLY : zwd => ua ! ua used as workspace … … 103 87 !! 104 88 INTEGER :: ji, jj, jk, jn ! dummy loop indices 105 REAL(wp) :: z avi, zrhs, znvvl! local scalars89 REAL(wp) :: zrhs ! local scalars 106 90 REAL(wp) :: ze3tb, ze3tn, ze3ta ! variable vertical scale factors 107 91 !!--------------------------------------------------------------------- … … 116 100 IF(lwp)WRITE(numout,*) 'tra_zdf_imp : implicit vertical mixing on ', cdtype 117 101 IF(lwp)WRITE(numout,*) '~~~~~~~~~~~ ' 118 zavi = 0._wp ! avoid warning at compilation phase when lk_ldfslp=F 102 ! 103 IF( lk_vvl ) THEN ; r_vvl = 1._wp ! Variable volume indicator 104 ELSE ; r_vvl = 0._wp 105 ENDIF 119 106 ENDIF 120 107 ! 121 ! I. Local initialization 122 ! ----------------------- 123 zwd(1,:, : ) = 0._wp ; zwd(jpi,:,:) = 0._wp 124 zws(1,:, : ) = 0._wp ; zws(jpi,:,:) = 0._wp 125 zwi(1,:, : ) = 0._wp ; zwi(jpi,:,:) = 0._wp 126 zwt(1,:, : ) = 0._wp ; zwt(jpi,:,:) = 0._wp 127 zwt(:,:,jpk) = 0._wp ; zwt( : ,:,1) = 0._wp 128 129 ! I.1 Variable volume : to take into account vertical variable vertical scale factors 130 ! ------------------- 131 IF( lk_vvl ) THEN ; znvvl = 1._wp 132 ELSE ; znvvl = 0._wp 133 ENDIF 134 135 ! II. Vertical trend associated with the vertical physics 136 ! ======================================================= 137 ! (including the vertical flux proportional to dk[t] associated 138 ! with the lateral mixing, through the avt update) 139 ! dk[ avt dk[ (t,s) ] ] diffusive trends 140 141 ! 142 ! II.0 Matrix construction 143 ! ------------------------ 144 DO jn = 1, kjpt 108 ! ! ============= ! 109 DO jn = 1, kjpt ! tracer loop ! 110 ! ! ============= ! 145 111 ! 146 112 ! Matrix construction 147 ! ------------------------ 148 IF( cdtype == 'TRA' .AND. jn == jp_tem ) THEN 113 ! -------------------- 114 ! Build matrix if temperature or salinity (only in double diffusion case) or first passive tracer 115 ! 116 IF( ( cdtype == 'TRA' .AND. ( ( jn == jp_tem ) .OR. ( jn == jp_sal .AND. lk_zdfddm ) ) ) .OR. & 117 & ( cdtype == 'TRC' .AND. jn == 1 ) ) THEN 118 ! 119 ! vertical mixing coef.: avt for temperature, avs for salinity and passive tracers 120 IF( cdtype == 'TRA' .AND. jn == jp_tem ) THEN ; zwt(:,:,2:jpk) = avt (:,:,2:jpk) 121 ELSE ; zwt(:,:,2:jpk) = fsavs(:,:,2:jpk) 122 ENDIF 123 zwt(:,:,1) = 0._wp 124 ! 149 125 #if defined key_ldfslp 150 IF( ln_traldf_grif ) THEN 126 ! isoneutral diffusion: add the contribution 127 IF( ln_traldf_grif ) THEN ! Griffies isoneutral diff 151 128 DO jk = 2, jpkm1 152 129 DO jj = 2, jpjm1 153 130 DO ji = fs_2, fs_jpim1 ! vector opt. 154 ! zavi = fsahtw(ji,jj,jk) * wslp2(ji,jj,jk) ! vertical mixing coef. due to lateral mixing 155 zavi = ah_wslp2(ji,jj,jk) ! vertical mixing coef. due to lateral mixing 156 zwt(ji,jj,jk) = avt(ji,jj,jk) + zavi ! zwt=avt+zavi (total vertical mixing coef. on temperature) 131 zwt(ji,jj,jk) = zwt(ji,jj,jk) + ah_wslp2(ji,jj,jk) 157 132 END DO 158 133 END DO 159 134 END DO 160 ! update and save of avt (and avs if double diffusive mixing) 161 ELSE IF( l_traldf_rot ) THEN 135 ELSE IF( l_traldf_rot ) THEN ! standard isoneutral diff 162 136 DO jk = 2, jpkm1 163 137 DO jj = 2, jpjm1 164 138 DO ji = fs_2, fs_jpim1 ! vector opt. 165 zavi = fsahtw(ji,jj,jk) & ! vertical mixing coef. due to lateral mixing 166 & * ( wslpi(ji,jj,jk) * wslpi(ji,jj,jk) & 167 & + wslpj(ji,jj,jk) * wslpj(ji,jj,jk) ) 168 zwt(ji,jj,jk) = avt(ji,jj,jk) + zavi ! zwt=avt+zavi (total vertical mixing coef. on temperature) 139 zwt(ji,jj,jk) = zwt(ji,jj,jk) + fsahtw(ji,jj,jk) & 140 & * ( wslpi(ji,jj,jk) * wslpi(ji,jj,jk) & 141 & + wslpj(ji,jj,jk) * wslpj(ji,jj,jk) ) 169 142 END DO 170 143 END DO 171 144 END DO 172 ELSE ! no rotation but key_ldfslp defined173 zwt(:,:,:) = avt(:,:,:)174 145 ENDIF 175 #else176 ! No isopycnal diffusion177 zwt(:,:,:) = avt(:,:,:)178 146 #endif 179 ! Diagonal, inferior, superior (including the bottom boundary condition via avtmasked)147 ! Diagonal, lower (i), upper (s) (including the bottom boundary condition since avt is masked) 180 148 DO jk = 1, jpkm1 181 149 DO jj = 2, jpjm1 182 150 DO ji = fs_2, fs_jpim1 ! vector opt. 183 ze3ta = ( 1. - znvvl ) + znvvl * fse3t_a(ji,jj,jk) ! after scale factor at T-point184 ze3tn = znvvl + ( 1. - znvvl ) * fse3t_n(ji,jj,jk) ! now scale factor at T-point151 ze3ta = ( 1. - r_vvl ) + r_vvl * fse3t_a(ji,jj,jk) ! after scale factor at T-point 152 ze3tn = r_vvl + ( 1. - r_vvl ) * fse3t_n(ji,jj,jk) ! now scale factor at T-point 185 153 zwi(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk ) / ( ze3tn * fse3w(ji,jj,jk ) ) 186 154 zws(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk+1) / ( ze3tn * fse3w(ji,jj,jk+1) ) … … 189 157 END DO 190 158 END DO 159 ! 160 !! Matrix inversion from the first level 161 !!---------------------------------------------------------------------- 162 ! solve m.x = y where m is a tri diagonal matrix ( jpk*jpk ) 163 ! 164 ! ( zwd1 zws1 0 0 0 )( zwx1 ) ( zwy1 ) 165 ! ( zwi2 zwd2 zws2 0 0 )( zwx2 ) ( zwy2 ) 166 ! ( 0 zwi3 zwd3 zws3 0 )( zwx3 )=( zwy3 ) 167 ! ( ... )( ... ) ( ... ) 168 ! ( 0 0 0 zwik zwdk )( zwxk ) ( zwyk ) 169 ! 170 ! m is decomposed in the product of an upper and lower triangular matrix. 171 ! The 3 diagonal terms are in 3d arrays: zwd, zws, zwi. 172 ! Suffices i,s and d indicate "inferior" (below diagonal), diagonal 173 ! and "superior" (above diagonal) components of the tridiagonal system. 174 ! The solution will be in the 4d array pta. 175 ! The 3d array zwt is used as a work space array. 176 ! En route to the solution pta is used a to evaluate the rhs and then 177 ! used as a work space array: its value is modified. 178 ! 191 179 ! first recurrence: Tk = Dk - Ik Sk-1 / Tk-1 (increasing k) 180 ! done once for all passive tracers (so included in the IF instruction) 192 181 DO jj = 2, jpjm1 193 182 DO ji = fs_2, fs_jpim1 … … 203 192 END DO 204 193 ! 205 ELSE IF( ( cdtype == 'TRA' .AND. jn == jp_sal ) .OR. ( cdtype == 'TRC' .AND. jn == 1 ) ) THEN206 #if defined key_ldfslp207 IF( ln_traldf_grif ) THEN208 DO jk = 2, jpkm1209 DO jj = 2, jpjm1210 DO ji = fs_2, fs_jpim1 ! vector opt.211 zavi = ah_wslp2(ji,jj,jk) ! vertical mixing coef. due to lateral mixing212 ! zavi = fsahtw(ji,jj,jk) * wslp2(ji,jj,jk) ! vertical mixing coef. due to lateral mixing213 zwt(ji,jj,jk) = fsavs(ji,jj,jk) + zavi ! zwt=avt+zavi (total vertical mixing coef. on temperature)214 END DO215 END DO216 END DO217 ELSE IF( l_traldf_rot ) THEN218 DO jk = 2, jpkm1219 DO jj = 2, jpjm1220 DO ji = fs_2, fs_jpim1 ! vector opt.221 zavi = fsahtw(ji,jj,jk) & ! vertical mixing coef. due to lateral mixing222 & * ( wslpi(ji,jj,jk) * wslpi(ji,jj,jk) &223 & + wslpj(ji,jj,jk) * wslpj(ji,jj,jk) )224 zwt(ji,jj,jk) = fsavs(ji,jj,jk) + zavi ! zwt=avt+zavi (total vertical mixing coef. on salinity)225 END DO226 END DO227 END DO228 ELSE ! no rotation but key_ldfslp defined229 zwt(:,:,:) = fsavs(:,:,:)230 ENDIF231 #else232 ! No isopycnal diffusion233 zwt(:,:,:) = fsavs(:,:,:)234 #endif235 ! Diagonal, inferior, superior (including the bottom boundary condition via avt masked)236 DO jk = 1, jpkm1237 DO jj = 2, jpjm1238 DO ji = fs_2, fs_jpim1 ! vector opt.239 ze3ta = ( 1. - znvvl ) + znvvl * fse3t_a(ji,jj,jk) ! after scale factor at T-point240 ze3tn = znvvl + ( 1. - znvvl ) * fse3t_n(ji,jj,jk) ! now scale factor at T-point241 zwi(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk ) / ( ze3tn * fse3w(ji,jj,jk ) )242 zws(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk+1) / ( ze3tn * fse3w(ji,jj,jk+1) )243 zwd(ji,jj,jk) = ze3ta - zwi(ji,jj,jk) - zws(ji,jj,jk)244 END DO245 END DO246 END DO247 ! Surface boudary conditions248 DO jj = 2, jpjm1249 DO ji = fs_2, fs_jpim1 ! vector opt.250 ze3ta = ( 1. - znvvl ) + znvvl * fse3t_a(ji,jj,1) ! after scale factor at T-point251 zwi(ji,jj,1) = 0._wp252 zwd(ji,jj,1) = ze3ta - zws(ji,jj,1)253 END DO254 END DO255 !256 ! first recurrence: Tk = Dk - Ik Sk-1 / Tk-1 (increasing k)257 DO jj = 2, jpjm1258 DO ji = fs_2, fs_jpim1259 zwt(ji,jj,1) = zwd(ji,jj,1)260 END DO261 END DO262 DO jk = 2, jpkm1263 DO jj = 2, jpjm1264 DO ji = fs_2, fs_jpim1265 zwt(ji,jj,jk) = zwd(ji,jj,jk) - zwi(ji,jj,jk) * zws(ji,jj,jk-1) / zwt(ji,jj,jk-1)266 END DO267 END DO268 END DO269 !270 194 END IF 271 272 ! II.1. Vertical diffusion on tracer 273 ! --------------------------- 274 195 ! 275 196 ! second recurrence: Zk = Yk - Ik / Tk-1 Zk-1 276 197 DO jj = 2, jpjm1 277 198 DO ji = fs_2, fs_jpim1 278 ze3tb = ( 1. - znvvl ) + znvvl * fse3t_b(ji,jj,1)279 ze3tn = ( 1. - znvvl ) + znvvl * fse3t(ji,jj,1)199 ze3tb = ( 1. - r_vvl ) + r_vvl * fse3t_b(ji,jj,1) 200 ze3tn = ( 1. - r_vvl ) + r_vvl * fse3t(ji,jj,1) 280 201 pta(ji,jj,1,jn) = ze3tb * ptb(ji,jj,1,jn) + p2dt(1) * ze3tn * pta(ji,jj,1,jn) 281 202 END DO … … 284 205 DO jj = 2, jpjm1 285 206 DO ji = fs_2, fs_jpim1 286 ze3tb = ( 1. - znvvl ) + znvvl * fse3t_b(ji,jj,jk)287 ze3tn = ( 1. - znvvl ) + znvvl * fse3t (ji,jj,jk)207 ze3tb = ( 1. - r_vvl ) + r_vvl * fse3t_b(ji,jj,jk) 208 ze3tn = ( 1. - r_vvl ) + r_vvl * fse3t (ji,jj,jk) 288 209 zrhs = ze3tb * ptb(ji,jj,jk,jn) + p2dt(jk) * ze3tn * pta(ji,jj,jk,jn) ! zrhs=right hand side 289 210 pta(ji,jj,jk,jn) = zrhs - zwi(ji,jj,jk) / zwt(ji,jj,jk-1) * pta(ji,jj,jk-1,jn) … … 292 213 END DO 293 214 294 ! third recurrence: Xk = (Zk - Sk Xk+1 ) / Tk 215 ! third recurrence: Xk = (Zk - Sk Xk+1 ) / Tk (result is the after tracer) 295 216 DO jj = 2, jpjm1 296 217 DO ji = fs_2, fs_jpim1 … … 306 227 END DO 307 228 END DO 308 ! 309 END DO 229 ! ! ================= ! 230 END DO ! end tracer loop ! 231 ! ! ================= ! 310 232 ! 311 233 IF(wrk_not_released(3, 1,2))THEN -
branches/dev_r2586_dynamic_mem/NEMOGCM/SETTE/README
r2545 r2678 1 1 usage of SETTE package: 2 2 3 principal script is sette.sh (usage: ./sette.sh) 3 principal script is sette.sh (usage: ./sette.sh) 4 4 5 5 VERY IMPORTANT : for a verbose debug do: … … 18 18 set_namelist : to set namelist values 19 19 (example : to set 75 time steps for one test : namelist nn_itend 75) 20 ( : to change cn_icerst_in name : namelist_ice cn_icerst_in \"test_00101231_restart_icemod.nc\") 21 ( : to activate control print : namelist ln_ctl \".false.\" ) 22 fcm_job.sh needs input: input_CONFIG_NAME and TOTAL NUMBER OF PROCS used 23 (for example if you compile ORCA2_LIM with nproci=2 and nprocj=2 ===> ./fcm_job input_ORCA2_LIM.cfg 4) 20 ( : to change cn_icerst_in name : namelist_ice cn_icerst_in \"test_00101231_restart_icemod\") 21 ( : to activate control print : namelist ln_ctl false ) 22 fcm_job.sh needs input: input_CONFIG_NAME TOTAL_NUMBER_OF_PROCS_used TEST_NAME 23 (for example if you compile ORCA2_LIM with nproci=2 and nprocj=2 24 and only run short test ===> ./fcm_job input_ORCA2_LIM.cfg 4 SHORT) 24 25 in param.cfg : 25 EXE_DIR : directory in which execute jobs (by default CONFIG_DIR) 26 FORCING_DIR : directory where to get input tar file 27 INPUT_DIR : directory in which store input files 28 TMPDIR : temporary directory NEEDED ONLY FOR IBM machines (put EXP00 directory) 29 OUTPUT_DIR : directory in which store output files 26 EXE_DIR : directory in which job s executed (by default CONFIG_DIR) 27 FORCING_DIR : directory in which will be found input.tar file (same name in input_CONFIG_NAME.cfg) 28 INPUT_DIR : directory in which store input files 29 TMPDIR : temporary directory NEEDED ONLY FOR IBM machines (put EXP00 directory) 30 OUTPUT_DIR : directory in which store output files 31 NEMO_VALIDATION_DIR : directory in which create NEMO_VALIDATION tree, and store restart, solver.stat and ocean.output files in 32 tree NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/TEST_NAME/REVISION_NUMBER(or DATE) 30 33 in fcm_job.sh : 31 34 IMPORTANT : control that name of tar file in FORCING directory 32 35 is the same of that in input_REF_CONFIG.cfg, if not change one. 33 36 change in "RUN OPA" part the command line (some examples are already written) 34 37 TEST_NAME by convention is LONG: 10 days run or SHORT: 5 days run 38 so NEMO_VALIDATION tree is coherent, 39 but user can choise a TEST_NAME that represent his own test. 35 40 36 41 NOTE: -
branches/dev_r2586_dynamic_mem/NEMOGCM/SETTE/all_functions.sh
r2583 r2678 49 49 # 50 50 # $ ./set_namelist.sh namelist nn_itend 75 51 # $ ./set_namelist.sh namelist_ice_lim2 cn_icerst_in \"00101231_restart_ice mod\"51 # $ ./set_namelist.sh namelist_ice_lim2 cn_icerst_in \"00101231_restart_ice\" 52 52 # 53 53 # … … 86 86 fi 87 87 unset minargcount 88 if [ -f ${SETTE_DIR}/output.sette ] ; then 89 echo "file output already present. Append comments" 90 echo "`ls ${SETTE_DIR}/output.sette`" 91 else 92 echo "file output not present" 88 if [ ! -f ${SETTE_DIR}/output.sette ] ; then 93 89 touch ${SETTE_DIR}/output.sette 94 echo "`ls ${SETTE_DIR}/output.sette`"95 90 fi 96 91 … … 99 94 100 95 VAR_NAME=$( supergrep $2 ${INPUT_DIR}/$1 ) 96 if [ ${#VAR_NAME} -eq 0 ] 97 then 98 echo "doing \"set_namelist $@\". " 99 echo "variable: \"$2\" is empty" 100 echo "control that variable $2 is in \"${INPUT_DIR}/$1\" " 101 echo "exit" 102 echo "error in executing script : set_namelist $@" >> ${SETTE_DIR}/output.sette 103 echo "....." >> ${SETTE_DIR}/output.sette 104 exit 1 105 fi 101 106 sed -e "s/${VAR_NAME}.*/${VAR_NAME}/" ${INPUT_DIR}/$1 > ${INPUT_DIR}/$1.tmp 102 107 mv ${INPUT_DIR}/$1.tmp ${INPUT_DIR}/$1 … … 104 109 mv ${INPUT_DIR}/$1.tmp ${INPUT_DIR}/$1 105 110 106 if [ -f ${INPUT_DIR}/$1 ] ; then107 echo "namelist not empty: ok"108 else109 echo "some problems in sed namelist: exit"110 exit 1111 fi112 111 echo "finished script : set_namelist $@" >> ${SETTE_DIR}/output.sette 113 112 echo "++++++++++++++++" >> ${SETTE_DIR}/output.sette -
branches/dev_r2586_dynamic_mem/NEMOGCM/SETTE/fcm_job.sh
r2585 r2678 25 25 # :: 26 26 # 27 # $ ./fcm_job.sh INPUT_FILE_CONFIG_NAME NUMBER_PROC 27 # $ ./fcm_job.sh INPUT_FILE_CONFIG_NAME NUMBER_PROC TEST_NAME 28 28 # 29 29 # … … 34 34 # Simple job for SET TESTS for NEMO (SETTE) 35 35 # 36 # this job creates tree of validation in NEMO_VALIDATION_DIR as follows : 37 # 38 # NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/TEST_NAME/REVISION_NUMBER(or DATE) 39 # 40 # NEMO_VALIDATION_DIR : is choosen in param.cfg 41 # 42 # WCONFIG_NAME : set by makenemo at the moment of compilation 43 # 44 # WCOMPILER_NAME : set by makenemo at the moment of compilation 45 # 46 # TEST_NAME : convention is LONG=10 days run, SHORT=5 days run 47 # 48 # REVISION_NUMBER(or DATE) : revision number by svn info, if problems with svn date is taken 36 49 # 37 50 # EXAMPLES … … 40 53 # :: 41 54 # 42 # $ ./fcm_job.sh INPUT_FILE_CONFIG_NAME NUMBER_PROC43 # 44 # run a job of config GYRE with 1 processor 45 # $ ./fcm_job.sh input_GYRE.cfg 146 # 47 # run a job of config ORCA2_LIM_PISCES with 8 processors48 # $ ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 855 # $ ./fcm_job.sh INPUT_FILE_CONFIG_NAME NUMBER_PROC TEST_NAME 56 # 57 # run a job of config GYRE with 1 processor test REPRODUCTINILITY 58 # $ ./fcm_job.sh input_GYRE.cfg 1 SHORT 59 # 60 # run a job of config ORCA2_LIM_PISCES with 8 processors test RESTARTABILITY 61 # $ ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 8 LONG 49 62 # 50 63 # … … 67 80 # 68 81 69 usage=" Usage : ./fcm_job.sh input_CONFIG_NAME.cfg NUMBER_OF_PROCS "70 usage=" example : ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 8 "71 72 73 minargcount= 282 usage=" Usage : ./fcm_job.sh input_CONFIG_NAME.cfg NUMBER_OF_PROCS TEST_NAME" 83 usage=" example : ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 8 RUN" 84 85 86 minargcount=3 74 87 if [ ${#} -lt ${minargcount} ] 75 88 then … … 80 93 fi 81 94 unset minargcount 82 if [ -f ${SETTE_DIR}/output.sette ] ; then 83 echo "file output already present. Append comments" 84 echo "`ls ${SETTE_DIR}/output.sette`" 85 else 86 echo "file output not present" 95 if [ ! -f ${SETTE_DIR}/output.sette ] ; then 87 96 touch ${SETTE_DIR}/output.sette 88 echo "`ls ${SETTE_DIR}/output.sette`"89 97 fi 90 98 … … 96 104 echo "`more ../CONFIG/${NEW_CONF}/cpp_${NEW_CONF}.fcm`" >> ${SETTE_DIR}/output.sette 97 105 echo "" >> ${SETTE_DIR}/output.sette 98 echo "executing script : fcm_job $@" >> ${SETTE_DIR}/output.sette106 echo "executing script : \"fcm_job $@\" " >> ${SETTE_DIR}/output.sette 99 107 echo " " >> ${SETTE_DIR}/output.sette 100 108 … … 107 115 echo " " >> ${SETTE_DIR}/output.sette 108 116 cp ${FORCING_DIR}/${tar_file} ${INPUT_DIR}/. 109 cd ${INPUT_DIR} ; tar xvof ${INPUT_DIR}/*.tar ; gunzip -f *gz 117 if [ ! -f ${INPUT_DIR}/${tar_file} ] ; then 118 echo "PROBLEM during copy of tar file" >> ${SETTE_DIR}/output.sette 119 echo "tar file IS NOT present in ${INPUT_DIR} directory " >> ${SETTE_DIR}/output.sette 120 echo " " >> ${SETTE_DIR}/output.sette 121 echo "PROBLEM during copy of tar file" 122 exit 1 123 else 124 cd ${INPUT_DIR} ; tar xvof ${INPUT_DIR}/*.tar ; gunzip -f *gz 125 fi 110 126 fi 111 127 … … 134 150 then 135 151 echo "executable opa does not exist" 152 echo "executable opa does not exist, exit" >> ${SETTE_DIR}/output.sette 136 153 exit 1 137 154 fi … … 165 182 166 183 ################################################################ 167 168 ################################################################169 184 # SAVE OUTPUT, DEBUG & RESTART FILES 170 185 echo "saving ocean & ice output, debug & restart files" >> ${SETTE_DIR}/output.sette … … 174 189 [ -f *solver.stat ] && mv *solver.stat ${OUTPUT_DIR}/. 175 190 [ -n "$(ls *_grid_*)" ] && mv *_grid_*.nc ${OUTPUT_DIR}/. 176 [ -n "$(ls *restart*)" ] && cp *restart*.nc ${OUTPUT_DIR}/. 191 [ -n "$(ls *_ptrc_*)" ] && mv *_ptrc_*.nc ${OUTPUT_DIR}/. 192 [ -n "$(ls *_diad_*)" ] && mv *_diad_*.nc ${OUTPUT_DIR}/. 193 [ -n "`ls *restart*`" ] && cp *restart*.nc ${OUTPUT_DIR}/. 177 194 [ -f ice_evolu ] && mv ice_evolu ${OUTPUT_DIR}/. 178 [ -n " $(ls *icemod*)" ] && mv *icemod* ${OUTPUT_DIR}/.195 [ -n "`ls *icemod*`" ] && mv *icemod* ${OUTPUT_DIR}/. 179 196 #- Save ftrace file 180 197 [ -f ftrace.out* ] && cp ftrace.out* ${OUTPUT_DIR}/. 181 198 ################################################################ 182 199 200 ################################################################ 201 # SAVE IN NEMO_VALIDATION tree 202 export LANG=en_US 203 cd ${CONFIG_DIR} 204 cd ../ 205 REVISION_NB=`svn info | grep -i "Revision:" | sed -e "s/ //" | cut -d ":" -f 2` 206 if [ ${#REVISION_NB} -eq 0 ] 207 then 208 echo "some problems with svn info command" 209 echo "some problems with svn info command" >> ${SETTE_DIR}/output.sette 210 ${REVISION_NB}=`date +%Y%m%d` 211 echo "put in ${REVISION_NB} date" 212 echo "put in ${REVISION_NB} date" >> ${SETTE_DIR}/output.sette 213 else 214 echo "value of revision number of NEMOGCM: ${REVISION_NB}" 215 fi 216 cd ${NEMO_VALIDATION_DIR} 217 export TEST_NAME=$3 218 `mkdir -p ${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME}` 219 NEMO_VALID=${NEMO_VALIDATION_DIR}/W${NEW_CONF}/${CMP_NAM}/${REVISION_NB}/${TEST_NAME} 220 if [ -d ${NEMO_VALID} ] ; then 221 echo "created ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 222 else 223 echo "problems in creating ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 224 echo "EXIT," 225 exit 1 226 fi 227 [ -f ${OUTPUT_DIR}/*ocean.output ] && mv ${OUTPUT_DIR}/*ocean.output ${NEMO_VALID}/. 228 [ -f ${OUTPUT_DIR}/*solver.stat ] && mv ${OUTPUT_DIR}/*solver.stat ${NEMO_VALID}/. 229 [ -n "`ls ${OUTPUT_DIR}/*restart*`" ] && mv ${OUTPUT_DIR}/*restart* ${NEMO_VALID}/. 230 if [ -n "$(ls ${NEMO_VALID}/*solver*)" ] ; then 231 echo "moved solver.stat in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 232 echo "moved solver.stat in ${NEMO_VALID} directory" 233 else 234 echo "problem in looking for solver.stat file in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 235 echo "solver.stat IS NOT in ${NEMO_VALID} directory" 236 fi 237 if [ -n "$(ls ${NEMO_VALID}/*ocean.output*)" ] ; then 238 echo "moved ocean.output in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 239 echo "moved ocean.output in ${NEMO_VALID} directory" 240 else 241 echo "problem in looking for ocean.output file in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 242 echo "ocean.output IS NOT in ${NEMO_VALID} directory" 243 fi 244 if [ -n "`ls ${NEMO_VALID}/*restart*`" ] ; then 245 echo "moved restart files in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 246 echo "moved restart files in ${NEMO_VALID} directory" 247 else 248 echo "problem in looking for restart files in ${NEMO_VALID} directory" >> ${SETTE_DIR}/output.sette 249 echo "restart files ARE NOT in ${NEMO_VALID} directory" 250 fi 251 ################################################################ -
branches/dev_r2586_dynamic_mem/NEMOGCM/SETTE/param.cfg
r2563 r2678 1 #- execution directory 1 2 EXE_DIR=${CONFIG_DIR} 2 3 #- forcing files storing … … 5 6 INPUT_DIR=${CONFIG_DIR}/${NEW_CONF}/EXP00 6 7 #- only for IBM 7 # -TMPDIR=${CONFIG_DIR}/${NEW_CONF}/EXP008 # TMPDIR=${CONFIG_DIR}/${NEW_CONF}/EXP00 8 9 #- output files storing 9 OUTPUT_DIR=${CONFIG_DIR}/${NEW_CONF}/EXP00/VALIDATION 10 OUTPUT_DIR=${CONFIG_DIR}/${NEW_CONF}/EXP00/OUTPUT 11 #- VALIDATION files storing 12 NEMO_VALIDATION_DIR=~/NEMO_VALIDATION -
branches/dev_r2586_dynamic_mem/NEMOGCM/SETTE/sette.sh
r2563 r2678 47 47 # Executing directory (EXE_DIR) 48 48 # 49 # Forcing files storing (FORCING_DIR) 49 50 50 # 51 51 # Input files storing (INPUT_DIR) 52 52 # 53 53 # Temporary directory (if needed) (TMPDIR) 54 # 55 # Output files storing (OUTPUT_DIR)54 # 55 # Validation directory (NEMO_VALIDATION_DIR) 56 56 # 57 57 # (note: this file is the same for all configrations to be tested with sette) 58 58 # 59 # all_functions.sh : loads functions used by sette (note: new functions can added here)59 # all_functions.sh : loads functions used by sette (note: new functions can be added here) 60 60 # 61 61 # set_namelist : function declared in all_functions that set namelist parameters for tests … … 63 63 # fcm_job.sh 64 64 # 65 # runs job and saves output files (ocean.output, solver.stat, grid_files, restart, ice_evolu, ftrace.out) 65 # runs job and saves output files (grid_files, restarts, ice_evolu, ftrace.out) 66 # 67 # and it creates tree of VALIDATION, in which there are restart files, solver.stat and ocean.output 68 # 69 # Tree of VALIDATION is: 70 # 71 # NEMO_VALIDATION_DIR/WCONFIG_NAME/WCOMPILER_NAME/TEST_NAME/REVISION_NUMBER(or DATE) 66 72 # 67 # (note this job needs to have an input_CONFIG.cfg in which found tar inputfile)73 # (note this job needs to have an input_CONFIG.cfg in which can be found input tar file) 68 74 # 69 75 # (note other files can be saved adding at the end of fcm_job list of saved files) … … 71 77 # NOTE: if job is not launched for some problems you have executable ready in ${CONFIG_NAME}/EXP00 directory 72 78 # 73 # at the end the directory ${CONFIG_NAME}/EXP00/VALIDATION is created 74 # 75 # and output files, solver.stat, ocean.output are put in ${CONFIG_NAME}/EXP00/VALIDATION directory 76 # 77 # and restart files and changed namelists are leaved in ${CONFIG_NAME}/EXP00 directory 79 # NOTE: the changed namelists are leaved in ${CONFIG_NAME}/EXP00 directory 78 80 # 79 81 # in ${SETTE_DIR} is created output.sette with the echo of commands run … … 108 110 #- 109 111 # 112 110 113 SETTE_DIR=/PATH/OF/SETTE 111 114 112 cd ${SETTE_DIR} 113 . ../CONFIG/makenemo -m ifort_linux -n GYRE_1_1 -r GYRE 114 cd ${SETTE_DIR} 115 . param.cfg 116 . all_functions.sh 117 set_namelist namelist nn_it000 1 118 set_namelist namelist nn_itend 75 119 cd ${SETTE_DIR} 120 . ./fcm_job.sh input_GYRE.cfg 1 121 122 cd ${SETTE_DIR} 123 . ../CONFIG/makenemo -n ORCA2_LIM_1_2 -r ORCA2_LIM add_key "key_mpp_mpi key_nproci=1 key_nprocj=2" 124 cd ${SETTE_DIR} 125 . param.cfg 126 . all_functions.sh 127 set_namelist namelist nn_it000 1 128 set_namelist namelist nn_itend 75 129 cd ${SETTE_DIR} 130 . ./fcm_job.sh input_ORCA2_LIM.cfg 2 131 115 ## NBTEST=6 116 ## echo "TOTAL NUMBER OF TEST" ${NBTEST} 117 ## for (( config=2; config<=${NBTEST}; config++ )) 118 119 for config in 1 2 3 4 5 6 120 do 121 122 if [ ${config} -eq 1 ] ; then 123 # Restartability tests for GYRE_LOBSTER 124 cd ${SETTE_DIR} 125 . ../CONFIG/makenemo -m PW6MONO_VARGAS -n GYRELOB_LONG -r GYRE_LOBSTER del_key "key_diatrc" 126 cd ${SETTE_DIR} 127 . param.cfg 128 . all_functions.sh 129 set_namelist namelist cn_exp \"GYRELOB_LONG\" 130 set_namelist namelist nn_it000 1 131 set_namelist namelist nn_itend 120 132 set_namelist namelist nn_stock 60 133 set_namelist namelist_top ln_trcrad .false. 134 cd ${SETTE_DIR} 135 . ./fcm_job.sh input_GYRE.cfg 1 LONG 136 137 cd ${SETTE_DIR} 138 set_namelist namelist cn_exp \"GYRELOB_SHORT\" 139 set_namelist namelist nn_it000 61 140 set_namelist namelist nn_itend 120 141 set_namelist namelist nn_stock 60 142 set_namelist namelist ln_rstart .true. 143 set_namelist namelist nn_rstctl 2 144 set_namelist namelist cn_ocerst_in \"GYRELOB_LONG_00000060_restart\" 145 set_namelist namelist_top ln_trcrad .false. 146 set_namelist namelist_top ln_rsttr .true. 147 set_namelist namelist_top nn_rsttr 2 148 set_namelist namelist_top cn_trcrst_in \"GYRELOB_LONG_00000060_restart_trc\" 149 cd ${SETTE_DIR} 150 . ./fcm_job.sh input_GYRE.cfg 1 SHORT 151 fi 152 153 if [ ${config} -eq 2 ] ; then 154 # Restartability tests for ORCA2_LIM_PISCES 155 cd ${SETTE_DIR} 156 . ../CONFIG/makenemo -m PW6MONO_VARGAS -n ORCA2LIMPIS_LONG -r ORCA2_LIM_PISCES del_key "key_dtatrc key_diatrc" 157 cd ${SETTE_DIR} 158 . param.cfg 159 . all_functions.sh 160 set_namelist namelist cn_exp \"O2LP_LONG\" 161 set_namelist namelist nn_it000 1 162 set_namelist namelist nn_itend 150 163 set_namelist namelist nn_stock 75 164 set_namelist namelist_top ln_trcrad .false. 165 # put ln_pisdmp, ln_dustfer, ln_river, ln_ndepo, ln_sedinput to false 166 # if not you need input files, and for tests is not necessary 167 set_namelist namelist_pisces ln_pisdmp .false. 168 set_namelist namelist_pisces ln_dustfer .false. 169 set_namelist namelist_pisces ln_river .false. 170 set_namelist namelist_pisces ln_ndepo .false. 171 set_namelist namelist_pisces ln_sedinput .false. 172 cd ${SETTE_DIR} 173 . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 1 LONG 174 175 cd ${SETTE_DIR} 176 . param.cfg 177 . all_functions.sh 178 set_namelist namelist cn_exp \"O2LP_SHORT\" 179 set_namelist namelist nn_it000 76 180 set_namelist namelist nn_itend 150 181 set_namelist namelist nn_stock 75 182 set_namelist namelist ln_rstart .true. 183 set_namelist namelist nn_rstctl 2 184 set_namelist namelist cn_ocerst_in \"O2LP_LONG_00000075_restart\" 185 set_namelist namelist_ice_lim2 cn_icerst_in \"O2LP_LONG_00000075_restart_ice\" 186 set_namelist namelist_top ln_trcrad .false. 187 set_namelist namelist_top ln_rsttr .true. 188 set_namelist namelist_top nn_rsttr 2 189 set_namelist namelist_top cn_trcrst_in \"O2LP_LONG_00000075_restart_trc\" 190 # put ln_pisdmp, ln_dustfer, ln_river, ln_ndepo, ln_sedinput 191 # if not you need input files, and for tests is not necessary 192 set_namelist namelist_pisces ln_pisdmp .false. 193 set_namelist namelist_pisces ln_dustfer .false. 194 set_namelist namelist_pisces ln_river .false. 195 set_namelist namelist_pisces ln_ndepo .false. 196 set_namelist namelist_pisces ln_sedinput .false. 197 cd ${SETTE_DIR} 198 . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 1 SHORT 199 fi 200 201 if [ ${config} -eq 3 ] ; then 202 ## Restartability tests for POMME 203 cd ${SETTE_DIR} 204 . ../CONFIG/makenemo -m PW6MONO_VARGAS -n POMME_LONG -r POMME 205 cd ${SETTE_DIR} 206 . param.cfg 207 . all_functions.sh 208 set_namelist namelist cn_exp \"POMME_LONG\" 209 set_namelist namelist nn_it000 1 210 set_namelist namelist nn_itend 600 211 set_namelist namelist nn_stock 300 212 set_namelist namelist nn_write 300 213 cd ${SETTE_DIR} 214 . ./fcm_job.sh input_POMME.cfg 1 LONG 215 cd ${CONFIG_DIR} 216 `mv ${NEW_CONF}/EXP00/restart.obc.output ${NEW_CONF}/EXP00/restart.obc` 217 218 cd ${SETTE_DIR} 219 set_namelist namelist cn_exp \"POMME_SHORT\" 220 set_namelist namelist nn_it000 301 221 set_namelist namelist nn_itend 600 222 set_namelist namelist nn_stock 300 223 set_namelist namelist ln_rstart .true. 224 set_namelist namelist nn_rstctl 2 225 set_namelist namelist nn_write 300 226 set_namelist namelist cn_ocerst_in \"POMME_LONG_00000300_restart\" 227 cd ${SETTE_DIR} 228 . ./fcm_job.sh input_POMME.cfg 1 SHORT 229 fi 230 231 if [ ${config} -eq 4 ] ; then 232 ## Repropducilibity tests for GYRE_LOBSTER 233 cd ${SETTE_DIR} 234 . ../CONFIG/makenemo -m PW6_VARGAS -n GYRELOB_1_4 -r GYRE_LOBSTER add_key "key_mpp_mpi key_mpp_rep key_nproci=1 key_nprocj=4" del_key "key_vectopt_loop key_diatrc" 235 cd ${SETTE_DIR} 236 . param.cfg 237 . all_functions.sh 238 set_namelist namelist nn_it000 1 239 set_namelist namelist nn_itend 75 240 set_namelist namelist nn_fwb 0 241 set_namelist namelist nn_bench 0 242 set_namelist namelist ln_ctl .false. 243 cd ${SETTE_DIR} 244 . ./fcm_job.sh input_GYRE.cfg 4 SHORT 245 246 cd ${SETTE_DIR} 247 . ../CONFIG/makenemo -m PW6_VARGAS -n GYRELOB_2_2 -r GYRE_LOBSTER add_key "key_mpp_rep key_mpp_mpi key_nproci=2 key_nprocj=2" del_key "key_vectopt_loop key_diatrc" 248 cd ${SETTE_DIR} 249 . param.cfg 250 . all_functions.sh 251 set_namelist namelist nn_it000 1 252 set_namelist namelist nn_itend 75 253 set_namelist namelist nn_fwb 0 254 set_namelist namelist nn_bench 0 255 set_namelist namelist ln_ctl .false. 256 cd ${SETTE_DIR} 257 . ./fcm_job.sh input_GYRE.cfg 4 SHORT 258 fi 259 260 if [ ${config} -eq 5 ] ; then 261 ## Repropducilibity tests for ORCA2_LIM_PISCES 262 cd ${SETTE_DIR} 263 . ../CONFIG/makenemo -m PW6_VARGAS -n ORCA2LIMPIS_4_4 -r ORCA2_LIM_PISCES add_key "key_mpp_mpi key_mpp_rep key_nproci=4 key_nprocj=4" del_key "key_vectopt_loop key_dtatrc key_diatrc" 264 cd ${SETTE_DIR} 265 . param.cfg 266 . all_functions.sh 267 set_namelist namelist nn_it000 1 268 set_namelist namelist nn_itend 75 269 set_namelist namelist nn_fwb 0 270 set_namelist namelist nn_bench 0 271 set_namelist namelist ln_ctl .false. 272 # put ln_pisdmp, ln_dustfer, ln_river, ln_ndepo, ln_sedinput to false 273 # if not you need input files, and for tests is not necessary 274 set_namelist namelist_pisces ln_pisdmp .false. 275 set_namelist namelist_pisces ln_dustfer .false. 276 set_namelist namelist_pisces ln_river .false. 277 set_namelist namelist_pisces ln_ndepo .false. 278 set_namelist namelist_pisces ln_sedinput .false. 279 cd ${SETTE_DIR} 280 . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 16 SHORT 281 282 cd ${SETTE_DIR} 283 . ../CONFIG/makenemo -m PW6_VARGAS -n ORCA2LIMPIS_2_8 -r ORCA2_LIM_PISCES add_key "key_mpp_rep key_mpp_mpi key_nproci=2 key_nprocj=8" del_key "key_vectopt_loop key_dtatrc key_diatrc" 284 cd ${SETTE_DIR} 285 . param.cfg 286 . all_functions.sh 287 set_namelist namelist nn_it000 1 288 set_namelist namelist nn_itend 75 289 set_namelist namelist nn_fwb 0 290 set_namelist namelist nn_bench 0 291 set_namelist namelist ln_ctl .false. 292 # put ln_pisdmp, ln_dustfer, ln_river, ln_ndepo, ln_sedinput to false 293 # if not you need input files, and for tests is not necessary 294 set_namelist namelist_pisces ln_pisdmp .false. 295 set_namelist namelist_pisces ln_dustfer .false. 296 set_namelist namelist_pisces ln_river .false. 297 set_namelist namelist_pisces ln_ndepo .false. 298 set_namelist namelist_pisces ln_sedinput .false. 299 cd ${SETTE_DIR} 300 . ./fcm_job.sh input_ORCA2_LIM_PISCES.cfg 16 SHORT 301 fi 302 303 if [ ${config} -eq 6 ] ; then 304 ## Reproductibility tests for POMME 305 cd ${SETTE_DIR} 306 . ../CONFIG/makenemo -m PW6_VARGAS -n POMME_1_4 -r POMME add_key "key_mpp_mpi key_mpp_rep key_nproci=1 key_nprocj=4" 307 cd ${SETTE_DIR} 308 . param.cfg 309 . all_functions.sh 310 set_namelist namelist nn_it000 1 311 set_namelist namelist nn_itend 300 312 set_namelist namelist nn_fwb 0 313 set_namelist namelist nn_bench 0 314 set_namelist namelist ln_ctl .false. 315 cd ${SETTE_DIR} 316 . ./fcm_job.sh input_POMME.cfg 4 SHORT 317 318 cd ${SETTE_DIR} 319 . ../CONFIG/makenemo -m PW6_VARGAS -n POMME_2_2 -r POMME add_key "key_mpp_mpi key_mpp_rep key_nproci=2 key_nprocj=2" 320 cd ${SETTE_DIR} 321 . param.cfg 322 . all_functions.sh 323 set_namelist namelist nn_it000 1 324 set_namelist namelist nn_itend 300 325 set_namelist namelist nn_fwb 0 326 set_namelist namelist nn_bench 0 327 set_namelist namelist ln_ctl .false. 328 cd ${SETTE_DIR} 329 . ./fcm_job.sh input_POMME.cfg 4 SHORT 330 fi 331 332 done -
branches/dev_r2586_dynamic_mem/NEMOGCM/TOOLS/COMPILE/Fadd_keys.sh
r2538 r2678 66 66 for i in ${list_add_key} ; do 67 67 if [ "$(echo ${i} | grep -c key_nproc )" -ne 0 ] ; then 68 sed -e "s/key_nproc[ij]=. * //" ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm > ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm.tmp68 sed -e "s/key_nproc[ij]=.[0-9]* //" ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm > ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm.tmp 69 69 mv ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm.tmp ${CONFIG_DIR}/${NEW_CONF}/cpp_${NEW_CONF}.fcm 70 70 echo " "
Note: See TracChangeset
for help on using the changeset viewer.