source: trunk/libIGCM/libIGCM_post/IGCM_Patch_20091118_mask.ksh @ 242

Last change on this file since 242 was 242, checked in by mafoipsl, 14 years ago

Same for the trunk : Add PISCES atlas and commands to submit it. Update mask patch for PISCES output files. Thanks to Christian.

  • Property svn:executable set to *
File size: 3.5 KB
Line 
1#!/bin/ksh
2
3#------------------------------------------------------------
4# Add mask from meshmask file to oceanic variables
5#------------------------------------------------------------
6
7function IGCM_Patch_20091118_mask {
8
9    set -vx
10    IGCM_debug_PushStack "IGCM_Patch_mask" $@
11
12    [ -f ${config_UserChoices_JobName}_mesh_mask.nc ] || IGCM_sys_Get ${R_SAVE}/OCE/Output/${config_UserChoices_JobName}_mesh_mask.nc .
13
14    filename=${1}
15
16    chaineT=${filename%%'grid_T'*}
17    chaineU=${filename%%'grid_U'*}
18    chaineV=${filename%%'grid_V'*}
19    chaineW=${filename%%'grid_W'*}
20    chaineIce=${filename%%'icemod'*}
21    chaineTrc=${filename%%'ptrc_T'*}
22    chaineDia=${filename%%'diad_T'*}
23
24    if [ ${filename} != ${chaineT} ]; then
25        mask='tmask' ; depth='deptht'
26    elif [ ${filename} != ${chaineU} ]; then
27        mask='umask' ; depth='depthu'
28    elif [ ${filename} != ${chaineV} ]; then
29        mask='vmask' ; depth='depthv'
30    elif [ ${filename} != ${chaineW} ]; then
31        mask='tmask' ; depth='depthw'
32    elif [ ${filename} != ${chaineIce} ]; then
33        mask='tmask' ; depth='deptht'
34    elif [ ${filename} != ${chaineTrc} ]; then
35        mask='tmask' ; depth='deptht'
36    elif [ ${filename} != ${chaineDia} ]; then
37        mask='tmask' ; depth='deptht'
38    fi
39
40#============================================
41# Remove nav_lon, nav_lat file
42    IGCM_sys_ncks -Oh -x -v nav_lon,nav_lat ${filename} file1.nc
43
44#============================================
45# Extract mask variable
46    IGCM_sys_ncks -Oh -v ${mask} ${config_UserChoices_JobName}_mesh_mask.nc mask3D.nc
47
48#============================================
49# Rename deptht dimension
50    IGCM_sys_ncrename -Oh -d z,${depth} mask3D.nc
51
52#============================================
53# Remove single dimension t
54    IGCM_sys_ncwa -Oh -a t mask3D.nc mask3D.nc
55
56#============================================
57# Create mask2D
58    IGCM_sys_ncks -Oh -d ${depth},0,0 mask3D.nc mask2D.nc
59    IGCM_sys_ncwa -Oh -a ${depth} mask2D.nc mask2D.nc
60    IGCM_sys_ncrename -h -v ${mask},mask2D mask2D.nc
61
62#============================================
63# Append mask (2D) to file1.nc
64    IGCM_sys_ncks -Ah -c -v mask2D mask2D.nc file1.nc
65
66    if [ ${filename} = ${chaineIce} ]; then
67
68#============================================
69# Append mask (3D) only for oceanic files
70        IGCM_sys_ncks -Ah -v ${mask} mask3D.nc file1.nc
71        IGCM_sys_ncrename -h -v ${mask},mask3D file1.nc
72
73#============================================
74# Add record dimension only for oceanic files
75        IGCM_sys_ncecat -Oh file1.nc file1.nc
76
77#============================================
78# Apply mask 3D only for oceanic files
79        IGCM_sys_ncwa -Oh -a record -B 'mask3D==1' file1.nc file1.nc
80
81    fi
82
83#============================================
84# Add record dimension
85    IGCM_sys_ncecat -Oh file1.nc file1.nc
86
87#============================================
88# Apply mask 2D
89    IGCM_sys_ncwa -Oh -b -a record -B 'mask2D==1' file1.nc file1.nc
90
91#============================================
92# Permute record dimension in time_counter dimension
93
94    IGCM_sys_ncpdq -Oh -a time_counter,record file1.nc file1.nc
95    IGCM_sys_ncwa -Oh -a record file1.nc file1.nc
96
97#============================================
98# Remove mask
99    IGCM_sys_ncks -Oh -x -v mask2D,mask3D file1.nc file_mask.nc
100
101#============================================
102# Add nav_lon nav_lat
103    IGCM_sys_ncks -Ah -v nav_lon,nav_lat ${filename} file_mask.nc
104
105#============================================
106# Cleaning
107    IGCM_debug_Verif_Exit_Post
108    IGCM_sys_Mv file_mask.nc ${filename}
109    IGCM_sys_Rm mask3D.nc mask2D.nc file1.nc
110   
111    IGCM_debug_PopStack "IGCM_Patch_mask"
112}
Note: See TracBrowser for help on using the repository browser.