Changeset 4317 for TOOLS


Ignore:
Timestamp:
03/14/19 15:01:00 (5 years ago)
Author:
omamce
Message:

O.M: Mosaix. Correct NEMO mask to use maskutil

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TOOLS/MOSAIX/CreateWeightsMask.bash

    r4298 r4317  
    33#MSUB -o Out_WeightsMask    # Standard output 
    44#MSUB -e Out_WeightsMask    # Error output 
    5 #MSUB -eo 
    65#MSUB -n 16                 # Number of processors 
    76#MSUB -T 7200               # Time limit (seconds) 
     
    3736#  $HeadURL$ 
    3837# 
    39 # export CplModel=eORCA1.2xLMD144142 ; qsub -r ${CplModel} -o Out_${CplModel} -e Out_${CplModel} CreateWeightsMask.bash 
    40 # export CplModel=ORCA2.3xLMD9695 
    41 # export CplModel=ORCA2.3xICO30 
    42 # export CplModel=ORCA2.3xICO40 
    43 # export CplModel=eORCA1.2xICO40 
    44 # export CplModel=eORCA1.2xLMD256256 
    45 # export CplModel=eORCA1.2xICO450 
    46 # export CplModel=eORCA025.1xLMD256256 
     38# 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 
    4746# 
    4847 
     
    6362 
    6463# 
    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 
     64echo ${Titre}"Defines model"${Norm} 
     65# ================================= 
     66#CplModel=ORCA2.3xLMD9695 
     67#CplModel=ORCA2.3xICO30 
     68#CplModel=ORCA2.3xICO40 
     69CplModel=eORCA1.2xLMD144142 
     70#CplModel=eORCA1.2xLMD256256 
     71#CplModel=eORCA1.2xICO40 
     72#CplModel=eORCA1.2xICO450 
     73#CplModel=eORCA025.1xLMD256256 
     74 
     75Version="v3" ; Comment="Preliminary attempt - Do not trust !" 
     76 
     77# If available, get model name from job name 
    8478if [[ 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} ;  
    8680fi 
     81OCE=${CplModel//x*} ; ATM=${CplModel##*x} 
    8782 
    8883echo ${Titre}"ATM model : ${ATM}"${Norm} 
     
    9994[[ ${OCE} = eORCA1.2  ]] && oceCoastWidth=3 
    10095[[ ${OCE} = eORCA025* ]] && oceCoastWidth=1 
    101  
    10296 
    10397# Default values, used to create ocean fraction on atmospheric grid  
     
    137131AtmOceFluxes2nd="Direction=a2o,Order=2nd,Quantity=false,Renormalize=false,atmGrid=t,oceGrid=t,useArea=true,maskSrc=true,maskDst=true,Name=HeatWaterFluxes" # Heat and water fluxes 
    138132OceAtmFluxes2nd="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 AtmOceTemps2nd=" 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 
     133AtmOceTemp2nd=" 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 
    140134 
    141135## Creates the list 
     
    145139 
    146140# 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 ) 
    148142 
    149143# With 2nd order 
    150 #CommandList=( ${AtmOceFluxes} ${AtmOceFluxes2nd} ${OceAtmTemp} ${OceAtmTemp2nd} ${AtmOceStressU} ${AtmOceStressV} ${OceAtmFluxes} ${OceAtmFluxes2nd} ${AtmOceTemp} ${AtmOceTemp2nd} Runoff Calving Grids ) 
     144CommandList=( ${AtmOceFluxes} ${AtmOceFluxes2nd} ${OceAtmTemp} ${OceAtmTemp2nd} ${AtmOceStressU} ${AtmOceStressV} ${OceAtmFluxes} ${OceAtmFluxes2nd} ${AtmOceTemp} ${AtmOceTemp2nd} Runoff Calving Grids ) 
    151145 
    152146# Debugs 
    153147#CommandList=( ${AtmOceFluxes} ${OceAtmTemp} Runoff Calving Grids ) 
    154148#CommandList=( ${AtmOceFluxes} Runoff Calving Grids ) 
    155 #CommandList=( ${AtmOceFluxes} ) 
     149#CommandList=( ${AtmOceFluxes} ${OceAtmTemp} ) 
    156150#CommandList=( Runoff ) 
    157151#CommandList=( Runoff Calving Grids ) 
     
    187181 
    188182function setValues { 
    189     # 
     183    # Set default values 
    190184    read_Command "Direction=None,Order=None,Quantity=None,Renormalize=None,atmGrid=None,oceGrid=None,useArea=None,maskSrc=None,maskDst=None" 
     185    # Read command line 
    191186    read_Command ${1} 
    192187    # 
    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 
    195190 
    196191    case ${Order} in 
     
    303298cp ${R_IN}/ATM/GRID/${ATM}_grid.nc . 
    304299 
    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 
     301if [[ ${ATM} = LMD9695 ]] ; then 
     302    cat <<EOF > toDouble.nco 
     303lat                = double (lat) ; 
     304lon                = double (lon) ; 
     305aire               = double (aire) ; 
     306fract_oce          = double (fract_oce) ; 
     307fract_sic          = double (fract_sic) ; 
     308fract_oce_plus_sic = double (fract_oce_plus_sic) ; 
     309EOF 
     310    ncap2 --history --overwrite --script-file toDouble.nco ${ATM}_grid.nc tmp_${ATM}_grid.nc 
     311    mv tmp_${ATM}_grid.nc ${ATM}_grid.nc 
     312fi 
     313 
    331314 
    332315## 
     
    391374cp dia_t${oce}_to_t${atm}_${FullName}.nc  dia_t${oce}_to_t${atm}_${FullName}_mask.nc 
    392375ncks --alphabetize --history --overwrite --variable OceFrac dia_t${oce}_to_t${atm}_${FullName}_mask.nc ${ATM}_grid_maskFrom_${OCE}.nc 
     376ncatted  --history --attribute name,global,m,c,"${ATM}_grid_maskFrom_${OCE}.nc" ${ATM}_grid_maskFrom_${OCE}.nc 
    393377 
    394378cat <<EOF > creation_masque.nco 
     
    401385ncks --overwrite --history --variable OceMask,OceFrac,Oce2AtmMask tmp_dia_${ATM}_grid_maskFrom_${OCE}.nc ${ATM}_grid_maskFrom_${OCE}.nc 
    402386 
    403 echo "Change dimension names, and some attributes accordingly" 
    404 ## =========================================================== 
    405387if [[ $(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    ## =========================================================== 
    406390    case ${atm} in 
    407391        ( *ico* )  
     
    415399        ncatted  --history --attribute bounds,lon,m,c,"bounds_lon"       ${ATM}_grid_maskFrom_${OCE}.nc 
    416400        ;; 
    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 
    420406        ;; 
    421407    esac 
     
    423409    ncatted  --history --attribute coordinates,OceMask,m,c,"lat lon" ${ATM}_grid_maskFrom_${OCE}.nc 
    424410    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 
    425418  
    426419fi 
    427420 
    428 ncks --history --alphabetize  --append    --variable aire    atm_grid.nc                                   ${ATM}_grid_maskFrom_${OCE}.nc 
     421ncks --history --alphabetize  --append --variable aire atm_grid.nc ${ATM}_grid_maskFrom_${OCE}.nc 
     422ncatted  --history --attribute units,aire,m,c,"m^2" ${ATM}_grid_maskFrom_${OCE}.nc 
     423 
    429424[[ ${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.nc 
    434425 
    435426 
     
    470461        cp iodef_oce_to_atm.xml iodef.xml 
    471462         
    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}  
    473464        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 
    474465         
Note: See TracChangeset for help on using the changeset viewer.