- Timestamp:
- 03/14/19 15:01:00 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TOOLS/MOSAIX/CreateWeightsMask.bash
r4298 r4317 3 3 #MSUB -o Out_WeightsMask # Standard output 4 4 #MSUB -e Out_WeightsMask # Error output 5 #MSUB -eo6 5 #MSUB -n 16 # Number of processors 7 6 #MSUB -T 7200 # Time limit (seconds) … … 37 36 # $HeadURL$ 38 37 # 39 # exportCplModel=eORCA1.2xLMD144142 ; qsub -r ${CplModel} -o Out_${CplModel} -e Out_${CplModel} CreateWeightsMask.bash40 # exportCplModel=ORCA2.3xLMD969541 # exportCplModel=ORCA2.3xICO3042 # exportCplModel=ORCA2.3xICO4043 # exportCplModel=eORCA1.2xICO4044 # exportCplModel=eORCA1.2xLMD25625645 # exportCplModel=eORCA1.2xICO45046 # exportCplModel=eORCA025.1xLMD25625638 # CplModel=eORCA1.2xLMD144142 ; qsub -r ${CplModel} -o Out_${CplModel} -e Out_${CplModel} CreateWeightsMask.bash 39 # CplModel=ORCA2.3xLMD9695 40 # CplModel=ORCA2.3xICO30 41 # CplModel=ORCA2.3xICO40 42 # CplModel=eORCA1.2xICO40 43 # CplModel=eORCA1.2xLMD256256 44 # CplModel=eORCA1.2xICO450 45 # CplModel=eORCA025.1xLMD256256 47 46 # 48 47 … … 63 62 64 63 # 65 echo ${Titre}"Defines models"${Norm} 66 # ================================== 67 OCE=ORCA2.3 68 #OCE=eORCA1.2 69 #OCE=eORCA025.1 70 71 ATM=ICO30 72 #ATM=ICO40 73 #ATM=ICO450 74 #ATM=LMD9695 75 #ATM=LMD144142 76 #ATM=LMD256256 77 78 79 Comment="Preliminary attempt - Do not trust !" 80 Version="v2" 81 82 CplModel=${OCE}x${ATM} 83 # If available, get model names from job name 64 echo ${Titre}"Defines model"${Norm} 65 # ================================= 66 #CplModel=ORCA2.3xLMD9695 67 #CplModel=ORCA2.3xICO30 68 #CplModel=ORCA2.3xICO40 69 CplModel=eORCA1.2xLMD144142 70 #CplModel=eORCA1.2xLMD256256 71 #CplModel=eORCA1.2xICO40 72 #CplModel=eORCA1.2xICO450 73 #CplModel=eORCA025.1xLMD256256 74 75 Version="v3" ; Comment="Preliminary attempt - Do not trust !" 76 77 # If available, get model name from job name 84 78 if [[ X${SLURM_JOB_NAME} = X*ORC* || X${SLURM_JOB_NAME} = X*LMD* || X${SLURM_JOB_NAME} = X*ICO* ]] ; then 85 CplModel=${SLURM_JOB_NAME} ; OCE=${CplModel//x*} ; ATM=${CplModel##*x}79 CplModel=${SLURM_JOB_NAME} ; 86 80 fi 81 OCE=${CplModel//x*} ; ATM=${CplModel##*x} 87 82 88 83 echo ${Titre}"ATM model : ${ATM}"${Norm} … … 99 94 [[ ${OCE} = eORCA1.2 ]] && oceCoastWidth=3 100 95 [[ ${OCE} = eORCA025* ]] && oceCoastWidth=1 101 102 96 103 97 # Default values, used to create ocean fraction on atmospheric grid … … 137 131 AtmOceFluxes2nd="Direction=a2o,Order=2nd,Quantity=false,Renormalize=false,atmGrid=t,oceGrid=t,useArea=true,maskSrc=true,maskDst=true,Name=HeatWaterFluxes" # Heat and water fluxes 138 132 OceAtmFluxes2nd="Direction=o2a,Order=2nd,Quantity=false,Renormalize=false,atmGrid=t,oceGrid=t,useArea=true,maskSrc=true,maskDst=true,Name=OceAtmFluxes" # e.g. CO2 fluxes 139 AtmOceTemp s2nd="Direction=o2a,Order=2nd,Quantity=false,Renormalize=true,oceGrid=t,atmGrid=t,useArea=false,maskSrc=true,maskDst=true,Name=OceTemp" # e.g. T and S correction from DWL parametrization133 AtmOceTemp2nd=" Direction=o2a,Order=2nd,Quantity=false,Renormalize=true,oceGrid=t,atmGrid=t,useArea=false,maskSrc=true,maskDst=true,Name=OceTemp" # e.g. T and S correction from DWL parametrization 140 134 141 135 ## Creates the list … … 145 139 146 140 # More comprehensive list for IPSLCM6 with new features 147 CommandList=( ${AtmOceFluxes} ${OceAtmTemp} ${AtmOceStressU} ${AtmOceStressV} ${OceAtmFluxes} ${AtmOceTemp} Runoff Calving Grids )141 #CommandList=( ${AtmOceFluxes} ${OceAtmTemp} ${AtmOceStressU} ${AtmOceStressV} ${OceAtmFluxes} ${AtmOceTemp} Runoff Calving Grids ) 148 142 149 143 # With 2nd order 150 #CommandList=( ${AtmOceFluxes} ${AtmOceFluxes2nd} ${OceAtmTemp} ${OceAtmTemp2nd} ${AtmOceStressU} ${AtmOceStressV} ${OceAtmFluxes} ${OceAtmFluxes2nd} ${AtmOceTemp} ${AtmOceTemp2nd} Runoff Calving Grids )144 CommandList=( ${AtmOceFluxes} ${AtmOceFluxes2nd} ${OceAtmTemp} ${OceAtmTemp2nd} ${AtmOceStressU} ${AtmOceStressV} ${OceAtmFluxes} ${OceAtmFluxes2nd} ${AtmOceTemp} ${AtmOceTemp2nd} Runoff Calving Grids ) 151 145 152 146 # Debugs 153 147 #CommandList=( ${AtmOceFluxes} ${OceAtmTemp} Runoff Calving Grids ) 154 148 #CommandList=( ${AtmOceFluxes} Runoff Calving Grids ) 155 #CommandList=( ${AtmOceFluxes} )149 #CommandList=( ${AtmOceFluxes} ${OceAtmTemp} ) 156 150 #CommandList=( Runoff ) 157 151 #CommandList=( Runoff Calving Grids ) … … 187 181 188 182 function setValues { 189 # 183 # Set default values 190 184 read_Command "Direction=None,Order=None,Quantity=None,Renormalize=None,atmGrid=None,oceGrid=None,useArea=None,maskSrc=None,maskDst=None" 185 # Read command line 191 186 read_Command ${1} 192 187 # 193 oceGrid=${oceGrid,,} ; atmGrid=${atmGrid,,} 194 OCEGRID=${oceGrid^^} ; ATMGRID=${atmGrid^^} 188 oceGrid=${oceGrid,,} ; atmGrid=${atmGrid,,} # Model names to lower case 189 OCEGRID=${oceGrid^^} ; ATMGRID=${atmGrid^^} # Model names to upper case 195 190 196 191 case ${Order} in … … 303 298 cp ${R_IN}/ATM/GRID/${ATM}_grid.nc . 304 299 305 # 306 # echo ${Titre}"Creates OCEAN C grid : redundant points removed to compute proper integrals # A passer dans CreateWeights"${Norm} 307 # # -------------------------------------------------------------------------------------------------------- 308 # cat <<EOF >add_c_grid.nco 309 # defdim("x_grid_C", \$x_grid_T.size) ; 310 # defdim("y_grid_C", \$y_grid_T.size) ; 311 # defdim("nvertex_grid_C", 4) ; 312 # nav_lon_grid_C[y_grid_C,x_grid_C] = nav_lon_grid_T(:,:) ; 313 # nav_lat_grid_C[y_grid_C,x_grid_C] = nav_lat_grid_T(:,:) ; 314 # bounds_lon_grid_C[y_grid_C,x_grid_C,nvertex_grid_C] = bounds_lon_grid_T(:,:,:) ; 315 # bounds_lat_grid_C[y_grid_C,x_grid_C,nvertex_grid_C] = bounds_lat_grid_T(:,:,:) ; 316 # mask_C[y_grid_C,x_grid_C] = maskutil_T(:,:) ; 317 # area_grid_C[y_grid_C,x_grid_C] = area_grid_T(:,:) ; 318 # EOF 319 320 # ncap2 --overwrite --history --script-file add_c_grid.nco ${OCE}_coordinates_mask.nc tmp_${OCE}_coordinates_mask.nc 321 # ncatted --history --attribute bounds,nav_lon_grid_C,m,c,"bounds_lon_grid_C" tmp_${OCE}_coordinates_mask.nc 322 # ncatted --history --attribute bounds,nav_lat_grid_C,m,c,"bounds_lat_grid_C" tmp_${OCE}_coordinates_mask.nc 323 # ncks --history --overwrite --variable nav_lon_grid_C,nav_lat_grid_C tmp_${OCE}_coordinates_mask.nc C_${OCE}_coordinates_mask.nc 324 # ncks --history --append --variable bounds_lon_grid_C,bounds_lat_grid_C tmp_${OCE}_coordinates_mask.nc C_${OCE}_coordinates_mask.nc 325 # ncks --history --append --variable area_grid_C tmp_${OCE}_coordinates_mask.nc C_${OCE}_coordinates_mask.nc 326 327 # ncks --history --append C_${OCE}_coordinates_mask.nc ${OCE}_coordinates_mask.nc 328 # rm C_${OCE}_coordinates_mask.nc 329 330 # ls -al 300 # Soucis a corriger plus tard 301 if [[ ${ATM} = LMD9695 ]] ; then 302 cat <<EOF > toDouble.nco 303 lat = double (lat) ; 304 lon = double (lon) ; 305 aire = double (aire) ; 306 fract_oce = double (fract_oce) ; 307 fract_sic = double (fract_sic) ; 308 fract_oce_plus_sic = double (fract_oce_plus_sic) ; 309 EOF 310 ncap2 --history --overwrite --script-file toDouble.nco ${ATM}_grid.nc tmp_${ATM}_grid.nc 311 mv tmp_${ATM}_grid.nc ${ATM}_grid.nc 312 fi 313 331 314 332 315 ## … … 391 374 cp dia_t${oce}_to_t${atm}_${FullName}.nc dia_t${oce}_to_t${atm}_${FullName}_mask.nc 392 375 ncks --alphabetize --history --overwrite --variable OceFrac dia_t${oce}_to_t${atm}_${FullName}_mask.nc ${ATM}_grid_maskFrom_${OCE}.nc 376 ncatted --history --attribute name,global,m,c,"${ATM}_grid_maskFrom_${OCE}.nc" ${ATM}_grid_maskFrom_${OCE}.nc 393 377 394 378 cat <<EOF > creation_masque.nco … … 401 385 ncks --overwrite --history --variable OceMask,OceFrac,Oce2AtmMask tmp_dia_${ATM}_grid_maskFrom_${OCE}.nc ${ATM}_grid_maskFrom_${OCE}.nc 402 386 403 echo "Change dimension names, and some attributes accordingly"404 ## ===========================================================405 387 if [[ $(ncdump -h ${ATM}_grid_maskFrom_${OCE}.nc | grep domain_dst | wc -l) -gt 0 ]] ; then 388 echo "Change dimension names, and some attributes accordingly" 389 ## =========================================================== 406 390 case ${atm} in 407 391 ( *ico* ) … … 415 399 ncatted --history --attribute bounds,lon,m,c,"bounds_lon" ${ATM}_grid_maskFrom_${OCE}.nc 416 400 ;; 417 ( *lmd* ) 418 ncrename --history --dimension lon_domain_dst,lon ${ATM}_grid_maskFrom_${OCE}.nc 419 ncrename --history --dimension lat_domain_dst,lat ${ATM}_grid_maskFrom_${OCE}.nc 401 ( *lmd* ) 402 ncrename --history --variabl lon_domain_dst,lon ${ATM}_grid_maskFrom_${OCE}.nc 403 ncrename --history --variable lat_domain_dst,lat ${ATM}_grid_maskFrom_${OCE}.nc 404 ncrename --history --dimension lon_domain_dst,lon ${ATM}_grid_maskFrom_${OCE}.nc 405 ncrename --history --dimension lat_domain_dst,lat ${ATM}_grid_maskFrom_${OCE}.nc 420 406 ;; 421 407 esac … … 423 409 ncatted --history --attribute coordinates,OceMask,m,c,"lat lon" ${ATM}_grid_maskFrom_${OCE}.nc 424 410 ncatted --history --attribute coordinates,Oce2AtmMask,m,c,"lat lon" ${ATM}_grid_maskFrom_${OCE}.nc 411 412 ncatted --history --attribute long_name,OceFrac,c,c,"fraction of ocean in a grid cell" ${ATM}_grid_maskFrom_${OCE}.nc 413 ncatted --history --attribute units,OceFrac,c,c,"[0,1]" ${ATM}_grid_maskFrom_${OCE}.nc 414 ncatted --history --attribute long_name,OceMask,c,c,"fraction of ocean in a grid cell" ${ATM}_grid_maskFrom_${OCE}.nc 415 ncatted --history --attribute units,OceMask,c,c,"[0,1]" ${ATM}_grid_maskFrom_${OCE}.nc 416 ncatted --history --attribute long_name,Oce2AtmMask,c,c,"land mask" ${ATM}_grid_maskFrom_${OCE}.nc 417 ncatted --history --attribute units,Oce2AtmMask,c,c,"Land:0, Ocean:1" ${ATM}_grid_maskFrom_${OCE}.nc 425 418 426 419 fi 427 420 428 ncks --history --alphabetize --append --variable aire atm_grid.nc ${ATM}_grid_maskFrom_${OCE}.nc 421 ncks --history --alphabetize --append --variable aire atm_grid.nc ${ATM}_grid_maskFrom_${OCE}.nc 422 ncatted --history --attribute units,aire,m,c,"m^2" ${ATM}_grid_maskFrom_${OCE}.nc 423 429 424 [[ ${atm} = *ico* ]] && ncks --alphabetize --history --append --variable bounds_lon,bounds_lat atm_grid.nc ${ATM}_grid_maskFrom_${OCE}.nc 430 431 ##432 433 #cp ${ATM}_grid.nc ${ATM}_gridFromOce.nc434 425 435 426 … … 470 461 cp iodef_oce_to_atm.xml iodef.xml 471 462 472 python3 update_xml.py -i iodef.xml -n 'context[@id="interpol_read"]/file_definition/file[@id="file_src"]/field[@id="mask_src"]' -k name -v mask _${DSTGRID}463 python3 update_xml.py -i iodef.xml -n 'context[@id="interpol_read"]/file_definition/file[@id="file_src"]/field[@id="mask_src"]' -k name -v maskutil_${DSTGRID} 473 464 python3 update_xml.py -i iodef.xml -n 'context[@id="interpol_read"]/file_definition/file[@id="file_dst"]/field[@id="mask_dst"]' -k name -v Oce2AtmMask 474 465
Note: See TracChangeset
for help on using the changeset viewer.