source: tags/libIGCM_v1_5/libIGCM_post/IGCM_Patch_20091118_mask.ksh @ 1137

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

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.