Changeset 1198
- Timestamp:
- Jun 30, 2009, 6:02:55 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ4/branches/LMDZ4-dev/libf/phylmd/phys_output_mod.F90
r1196 r1198 22 22 integer, dimension(nfiles), save :: lev_files 23 23 integer, dimension(nfiles), save :: nid_files 24 ! $OMP THREADPRIVATE(clef_files, lev_files,nid_files)24 !!$OMP THREADPRIVATE(clef_files, lev_files,nid_files) 25 25 26 26 integer, dimension(nfiles), private, save :: nhorim, nvertm 27 integer, dimension(nfiles), private, save :: nvertap, nvertbp, nvertLev, nvertAlt 27 integer, dimension(nfiles), private, save :: nvertap, nvertbp, nvertAlt 28 ! integer, dimension(nfiles), private, save :: nvertp0 28 29 real, dimension(nfiles), private, save :: zoutm 29 30 real, private, save :: zdtime … … 46 47 END TYPE ctrl_out 47 48 49 !!! Comosentes de la coordonnee sigma-hybride 48 50 !!! Ap et Bp 49 type(ctrl_out) :: o_Ap = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Ap') 50 type(ctrl_out) :: o_Bp = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Bp') 51 type(ctrl_out) :: o_Lev = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Lev') 52 type(ctrl_out) :: o_Alt = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Alt') 51 type(ctrl_out),save :: o_Ahyb = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Ap') 52 type(ctrl_out),save :: o_Bhyb = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Bp') 53 type(ctrl_out),save :: o_Alt = ctrl_out((/ 1, 1, 1, 1, 1 /), 'Alt') 53 54 54 55 !!! 1D 55 type(ctrl_out) :: o_phis = ctrl_out((/ 1, 1, 10, 1, 1 /), 'phis')56 type(ctrl_out) :: o_aire = ctrl_out((/ 1, 1, 10, 1, 1 /),'aire')57 type(ctrl_out) :: o_contfracATM = ctrl_out((/ 10, 1, 1, 10, 10 /),'contfracATM')58 type(ctrl_out) :: o_contfracOR = ctrl_out((/ 10, 1, 1, 10, 10 /),'contfracOR')59 type(ctrl_out) :: o_aireTER = ctrl_out((/ 10, 10, 1, 10, 10 /),'aireTER')56 type(ctrl_out),save :: o_phis = ctrl_out((/ 1, 1, 10, 1, 1 /), 'phis') 57 type(ctrl_out),save :: o_aire = ctrl_out((/ 1, 1, 10, 1, 1 /),'aire') 58 type(ctrl_out),save :: o_contfracATM = ctrl_out((/ 10, 1, 1, 10, 10 /),'contfracATM') 59 type(ctrl_out),save :: o_contfracOR = ctrl_out((/ 10, 1, 1, 10, 10 /),'contfracOR') 60 type(ctrl_out),save :: o_aireTER = ctrl_out((/ 10, 10, 1, 10, 10 /),'aireTER') 60 61 61 62 !!! 2D 62 type(ctrl_out) :: o_flat = ctrl_out((/ 10, 1, 10, 10, 1 /),'flat')63 type(ctrl_out) :: o_slp = ctrl_out((/ 1, 1, 1, 10, 1 /),'slp')64 type(ctrl_out) :: o_tsol = ctrl_out((/ 1, 1, 1, 1, 1 /),'tsol')65 type(ctrl_out) :: o_t2m = ctrl_out((/ 1, 1, 1, 1, 1 /),'t2m')66 type(ctrl_out) :: o_t2m_min = ctrl_out((/ 1, 1, 10, 10, 10 /),'t2m_min')67 type(ctrl_out) :: o_t2m_max = ctrl_out((/ 1, 1, 10, 10, 10 /),'t2m_max')68 type(ctrl_out), dimension(4) :: o_t2m_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'t2m_ter'), &63 type(ctrl_out),save :: o_flat = ctrl_out((/ 10, 1, 10, 10, 1 /),'flat') 64 type(ctrl_out),save :: o_slp = ctrl_out((/ 1, 1, 1, 10, 1 /),'slp') 65 type(ctrl_out),save :: o_tsol = ctrl_out((/ 1, 1, 1, 1, 1 /),'tsol') 66 type(ctrl_out),save :: o_t2m = ctrl_out((/ 1, 1, 1, 1, 1 /),'t2m') 67 type(ctrl_out),save :: o_t2m_min = ctrl_out((/ 1, 1, 10, 10, 10 /),'t2m_min') 68 type(ctrl_out),save :: o_t2m_max = ctrl_out((/ 1, 1, 10, 10, 10 /),'t2m_max') 69 type(ctrl_out),save,dimension(4) :: o_t2m_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'t2m_ter'), & 69 70 ctrl_out((/ 10, 4, 10, 10, 10 /),'t2m_lic'), & 70 71 ctrl_out((/ 10, 4, 10, 10, 10 /),'t2m_oce'), & 71 72 ctrl_out((/ 10, 4, 10, 10, 10 /),'t2m_sic') /) 72 73 73 type(ctrl_out) :: o_wind10m = ctrl_out((/ 1, 1, 1, 10, 10 /),'wind10m')74 type(ctrl_out) :: o_wind10max = ctrl_out((/ 10, 1, 10, 10, 10 /),'wind10max')75 type(ctrl_out) :: o_sicf = ctrl_out((/ 1, 1, 10, 10, 10 /),'sicf')76 type(ctrl_out) :: o_q2m = ctrl_out((/ 1, 1, 1, 1, 1 /),'q2m')77 type(ctrl_out) :: o_u10m = ctrl_out((/ 1, 1, 1, 1, 1 /),'u10m')78 type(ctrl_out) :: o_v10m = ctrl_out((/ 1, 1, 1, 1, 1 /),'v10m')79 type(ctrl_out) :: o_psol = ctrl_out((/ 1, 1, 1, 1, 1 /),'psol')80 type(ctrl_out) :: o_qsurf = ctrl_out((/ 1, 10, 10, 10, 10 /),'qsurf')81 82 type(ctrl_out), dimension(4) :: o_u10m_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'u10m_ter'), &74 type(ctrl_out),save :: o_wind10m = ctrl_out((/ 1, 1, 1, 10, 10 /),'wind10m') 75 type(ctrl_out),save :: o_wind10max = ctrl_out((/ 10, 1, 10, 10, 10 /),'wind10max') 76 type(ctrl_out),save :: o_sicf = ctrl_out((/ 1, 1, 10, 10, 10 /),'sicf') 77 type(ctrl_out),save :: o_q2m = ctrl_out((/ 1, 1, 1, 1, 1 /),'q2m') 78 type(ctrl_out),save :: o_u10m = ctrl_out((/ 1, 1, 1, 1, 1 /),'u10m') 79 type(ctrl_out),save :: o_v10m = ctrl_out((/ 1, 1, 1, 1, 1 /),'v10m') 80 type(ctrl_out),save :: o_psol = ctrl_out((/ 1, 1, 1, 1, 1 /),'psol') 81 type(ctrl_out),save :: o_qsurf = ctrl_out((/ 1, 10, 10, 10, 10 /),'qsurf') 82 83 type(ctrl_out),save,dimension(4) :: o_u10m_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'u10m_ter'), & 83 84 ctrl_out((/ 10, 4, 10, 10, 10 /),'u10m_lic'), & 84 85 ctrl_out((/ 10, 4, 10, 10, 10 /),'u10m_oce'), & 85 86 ctrl_out((/ 10, 4, 10, 10, 10 /),'u10m_sic') /) 86 87 87 type(ctrl_out), dimension(4) :: o_v10m_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'v10m_ter'), &88 type(ctrl_out),save,dimension(4) :: o_v10m_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'v10m_ter'), & 88 89 ctrl_out((/ 10, 4, 10, 10, 10 /),'v10m_lic'), & 89 90 ctrl_out((/ 10, 4, 10, 10, 10 /),'v10m_oce'), & 90 91 ctrl_out((/ 10, 4, 10, 10, 10 /),'v10m_sic') /) 91 92 92 type(ctrl_out) :: o_qsol = ctrl_out((/ 1, 10, 10, 1, 1 /),'qsol')93 94 type(ctrl_out) :: o_ndayrain = ctrl_out((/ 1, 10, 10, 10, 10 /),'ndayrain')95 type(ctrl_out) :: o_precip = ctrl_out((/ 1, 1, 1, 1, 1 /),'precip')96 type(ctrl_out) :: o_plul = ctrl_out((/ 1, 1, 1, 1, 10 /),'plul')97 98 type(ctrl_out) :: o_pluc = ctrl_out((/ 1, 1, 1, 1, 10 /),'pluc')99 type(ctrl_out) :: o_snow = ctrl_out((/ 1, 1, 10, 1, 10 /),'snow')100 type(ctrl_out) :: o_evap = ctrl_out((/ 1, 1, 10, 1, 10 /),'evap')101 type(ctrl_out) :: o_tops = ctrl_out((/ 1, 1, 10, 10, 10 /),'tops')102 type(ctrl_out) :: o_tops0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'tops0')103 type(ctrl_out) :: o_topl = ctrl_out((/ 1, 1, 10, 1, 10 /),'topl')104 type(ctrl_out) :: o_topl0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'topl0')105 type(ctrl_out) :: o_SWupTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupTOA')106 type(ctrl_out) :: o_SWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupTOAclr')107 type(ctrl_out) :: o_SWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnTOA')108 type(ctrl_out) :: o_SWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnTOAclr')109 type(ctrl_out) :: o_SWup200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'SWup200')110 type(ctrl_out) :: o_SWup200clr = ctrl_out((/ 10, 1, 10, 10, 10 /),'SWup200clr')111 type(ctrl_out) :: o_SWdn200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'SWdn200')112 type(ctrl_out) :: o_SWdn200clr = ctrl_out((/ 10, 1, 10, 10, 10 /),'SWdn200clr')93 type(ctrl_out),save :: o_qsol = ctrl_out((/ 1, 10, 10, 1, 1 /),'qsol') 94 95 type(ctrl_out),save :: o_ndayrain = ctrl_out((/ 1, 10, 10, 10, 10 /),'ndayrain') 96 type(ctrl_out),save :: o_precip = ctrl_out((/ 1, 1, 1, 1, 1 /),'precip') 97 type(ctrl_out),save :: o_plul = ctrl_out((/ 1, 1, 1, 1, 10 /),'plul') 98 99 type(ctrl_out),save :: o_pluc = ctrl_out((/ 1, 1, 1, 1, 10 /),'pluc') 100 type(ctrl_out),save :: o_snow = ctrl_out((/ 1, 1, 10, 1, 10 /),'snow') 101 type(ctrl_out),save :: o_evap = ctrl_out((/ 1, 1, 10, 1, 10 /),'evap') 102 type(ctrl_out),save :: o_tops = ctrl_out((/ 1, 1, 10, 10, 10 /),'tops') 103 type(ctrl_out),save :: o_tops0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'tops0') 104 type(ctrl_out),save :: o_topl = ctrl_out((/ 1, 1, 10, 1, 10 /),'topl') 105 type(ctrl_out),save :: o_topl0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'topl0') 106 type(ctrl_out),save :: o_SWupTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupTOA') 107 type(ctrl_out),save :: o_SWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupTOAclr') 108 type(ctrl_out),save :: o_SWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnTOA') 109 type(ctrl_out),save :: o_SWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnTOAclr') 110 type(ctrl_out),save :: o_SWup200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'SWup200') 111 type(ctrl_out),save :: o_SWup200clr = ctrl_out((/ 10, 1, 10, 10, 10 /),'SWup200clr') 112 type(ctrl_out),save :: o_SWdn200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'SWdn200') 113 type(ctrl_out),save :: o_SWdn200clr = ctrl_out((/ 10, 1, 10, 10, 10 /),'SWdn200clr') 113 114 114 115 ! arajouter 115 ! type(ctrl_out) :: o_LWupTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupTOA')116 ! type(ctrl_out) :: o_LWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupTOAclr')117 ! type(ctrl_out) :: o_LWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnTOA')118 ! type(ctrl_out) :: o_LWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnTOAclr')119 120 type(ctrl_out) :: o_LWup200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWup200')121 type(ctrl_out) :: o_LWup200clr = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWup200clr')122 type(ctrl_out) :: o_LWdn200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWdn200')123 type(ctrl_out) :: o_LWdn200clr = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWdn200clr')124 type(ctrl_out) :: o_sols = ctrl_out((/ 1, 1, 10, 1, 10 /),'sols')125 type(ctrl_out) :: o_sols0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'sols0')126 type(ctrl_out) :: o_soll = ctrl_out((/ 1, 1, 10, 1, 10 /),'soll')127 type(ctrl_out) :: o_soll0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'soll0')128 type(ctrl_out) :: o_radsol = ctrl_out((/ 1, 1, 10, 10, 10 /),'radsol')129 type(ctrl_out) :: o_SWupSFC = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupSFC')130 type(ctrl_out) :: o_SWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupSFCclr')131 type(ctrl_out) :: o_SWdnSFC = ctrl_out((/ 1, 1, 10, 10, 10 /),'SWdnSFC')132 type(ctrl_out) :: o_SWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnSFCclr')133 type(ctrl_out) :: o_LWupSFC = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupSFC')134 type(ctrl_out) :: o_LWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupSFCclr')135 type(ctrl_out) :: o_LWdnSFC = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnSFC')136 type(ctrl_out) :: o_LWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnSFCclr')137 type(ctrl_out) :: o_bils = ctrl_out((/ 1, 2, 10, 1, 10 /),'bils')138 type(ctrl_out) :: o_sens = ctrl_out((/ 1, 1, 10, 1, 1 /),'sens')139 type(ctrl_out) :: o_fder = ctrl_out((/ 1, 2, 10, 1, 10 /),'fder')140 type(ctrl_out) :: o_ffonte = ctrl_out((/ 1, 10, 10, 10, 10 /),'ffonte')141 type(ctrl_out) :: o_fqcalving = ctrl_out((/ 1, 10, 10, 10, 10 /),'fqcalving')142 type(ctrl_out) :: o_fqfonte = ctrl_out((/ 1, 10, 10, 10, 10 /),'fqfonte')143 144 type(ctrl_out), dimension(4) :: o_taux_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'taux_ter'), &116 ! type(ctrl_out),save :: o_LWupTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupTOA') 117 ! type(ctrl_out),save :: o_LWupTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupTOAclr') 118 ! type(ctrl_out),save :: o_LWdnTOA = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnTOA') 119 ! type(ctrl_out),save :: o_LWdnTOAclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnTOAclr') 120 121 type(ctrl_out),save :: o_LWup200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWup200') 122 type(ctrl_out),save :: o_LWup200clr = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWup200clr') 123 type(ctrl_out),save :: o_LWdn200 = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWdn200') 124 type(ctrl_out),save :: o_LWdn200clr = ctrl_out((/ 1, 10, 10, 10, 10 /),'LWdn200clr') 125 type(ctrl_out),save :: o_sols = ctrl_out((/ 1, 1, 10, 1, 10 /),'sols') 126 type(ctrl_out),save :: o_sols0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'sols0') 127 type(ctrl_out),save :: o_soll = ctrl_out((/ 1, 1, 10, 1, 10 /),'soll') 128 type(ctrl_out),save :: o_soll0 = ctrl_out((/ 1, 5, 10, 10, 10 /),'soll0') 129 type(ctrl_out),save :: o_radsol = ctrl_out((/ 1, 1, 10, 10, 10 /),'radsol') 130 type(ctrl_out),save :: o_SWupSFC = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupSFC') 131 type(ctrl_out),save :: o_SWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWupSFCclr') 132 type(ctrl_out),save :: o_SWdnSFC = ctrl_out((/ 1, 1, 10, 10, 10 /),'SWdnSFC') 133 type(ctrl_out),save :: o_SWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'SWdnSFCclr') 134 type(ctrl_out),save :: o_LWupSFC = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupSFC') 135 type(ctrl_out),save :: o_LWupSFCclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWupSFCclr') 136 type(ctrl_out),save :: o_LWdnSFC = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnSFC') 137 type(ctrl_out),save :: o_LWdnSFCclr = ctrl_out((/ 1, 4, 10, 10, 10 /),'LWdnSFCclr') 138 type(ctrl_out),save :: o_bils = ctrl_out((/ 1, 2, 10, 1, 10 /),'bils') 139 type(ctrl_out),save :: o_sens = ctrl_out((/ 1, 1, 10, 1, 1 /),'sens') 140 type(ctrl_out),save :: o_fder = ctrl_out((/ 1, 2, 10, 1, 10 /),'fder') 141 type(ctrl_out),save :: o_ffonte = ctrl_out((/ 1, 10, 10, 10, 10 /),'ffonte') 142 type(ctrl_out),save :: o_fqcalving = ctrl_out((/ 1, 10, 10, 10, 10 /),'fqcalving') 143 type(ctrl_out),save :: o_fqfonte = ctrl_out((/ 1, 10, 10, 10, 10 /),'fqfonte') 144 145 type(ctrl_out),save,dimension(4) :: o_taux_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'taux_ter'), & 145 146 ctrl_out((/ 1, 4, 10, 1, 10 /),'taux_lic'), & 146 147 ctrl_out((/ 1, 4, 10, 1, 10 /),'taux_oce'), & 147 148 ctrl_out((/ 1, 4, 10, 1, 10 /),'taux_sic') /) 148 149 149 type(ctrl_out), dimension(4) :: o_tauy_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'tauy_ter'), &150 type(ctrl_out),save,dimension(4) :: o_tauy_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'tauy_ter'), & 150 151 ctrl_out((/ 1, 4, 10, 1, 10 /),'tauy_lic'), & 151 152 ctrl_out((/ 1, 4, 10, 1, 10 /),'tauy_oce'), & … … 153 154 154 155 155 type(ctrl_out), dimension(4) :: o_pourc_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'pourc_ter'), &156 type(ctrl_out),save,dimension(4) :: o_pourc_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'pourc_ter'), & 156 157 ctrl_out((/ 1, 4, 10, 1, 10 /),'pourc_lic'), & 157 158 ctrl_out((/ 1, 4, 10, 1, 10 /),'pourc_oce'), & 158 159 ctrl_out((/ 1, 4, 10, 1, 10 /),'pourc_sic') /) 159 160 160 type(ctrl_out), dimension(4) :: o_fract_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'fract_ter'), &161 type(ctrl_out),save,dimension(4) :: o_fract_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'fract_ter'), & 161 162 ctrl_out((/ 1, 4, 10, 1, 10 /),'fract_lic'), & 162 163 ctrl_out((/ 1, 4, 10, 1, 10 /),'fract_oce'), & 163 164 ctrl_out((/ 1, 4, 10, 1, 10 /),'fract_sic') /) 164 165 165 type(ctrl_out), dimension(4) :: o_tsol_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'tsol_ter'), &166 type(ctrl_out),save,dimension(4) :: o_tsol_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'tsol_ter'), & 166 167 ctrl_out((/ 1, 4, 10, 1, 10 /),'tsol_lic'), & 167 168 ctrl_out((/ 1, 4, 10, 1, 10 /),'tsol_oce'), & 168 169 ctrl_out((/ 1, 4, 10, 1, 10 /),'tsol_sic') /) 169 170 170 type(ctrl_out), dimension(4) :: o_sens_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'sens_ter'), &171 type(ctrl_out),save,dimension(4) :: o_sens_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'sens_ter'), & 171 172 ctrl_out((/ 1, 4, 10, 1, 10 /),'sens_lic'), & 172 173 ctrl_out((/ 1, 4, 10, 1, 10 /),'sens_oce'), & 173 174 ctrl_out((/ 1, 4, 10, 1, 10 /),'sens_sic') /) 174 175 175 type(ctrl_out), dimension(4) :: o_lat_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'lat_ter'), &176 type(ctrl_out),save,dimension(4) :: o_lat_srf = (/ ctrl_out((/ 1, 4, 10, 1, 10 /),'lat_ter'), & 176 177 ctrl_out((/ 1, 4, 10, 1, 10 /),'lat_lic'), & 177 178 ctrl_out((/ 1, 4, 10, 1, 10 /),'lat_oce'), & 178 179 ctrl_out((/ 1, 4, 10, 1, 10 /),'lat_sic') /) 179 180 180 type(ctrl_out), dimension(4) :: o_flw_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_ter'), &181 type(ctrl_out),save,dimension(4) :: o_flw_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_ter'), & 181 182 ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_lic'), & 182 183 ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_oce'), & 183 184 ctrl_out((/ 1, 10, 10, 10, 10 /),'flw_sic') /) 184 185 185 type(ctrl_out), dimension(4) :: o_fsw_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_ter'), &186 type(ctrl_out),save,dimension(4) :: o_fsw_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_ter'), & 186 187 ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_lic'), & 187 188 ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_oce'), & 188 189 ctrl_out((/ 1, 10, 10, 10, 10 /),'fsw_sic') /) 189 190 190 type(ctrl_out), dimension(4) :: o_wbils_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_ter'), &191 type(ctrl_out),save,dimension(4) :: o_wbils_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_ter'), & 191 192 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_lic'), & 192 193 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_oce'), & 193 194 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbils_sic') /) 194 195 195 type(ctrl_out), dimension(4) :: o_wbilo_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_ter'), &196 type(ctrl_out),save,dimension(4) :: o_wbilo_srf = (/ ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_ter'), & 196 197 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_lic'), & 197 198 ctrl_out((/ 1, 10, 10, 10, 10 /),'wbilo_oce'), & … … 199 200 200 201 201 type(ctrl_out) :: o_cdrm = ctrl_out((/ 1, 10, 10, 1, 10 /),'cdrm')202 type(ctrl_out) :: o_cdrh = ctrl_out((/ 1, 10, 10, 1, 10 /),'cdrh')203 type(ctrl_out) :: o_cldl = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldl')204 type(ctrl_out) :: o_cldm = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldm')205 type(ctrl_out) :: o_cldh = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldh')206 type(ctrl_out) :: o_cldt = ctrl_out((/ 1, 1, 2, 10, 10 /),'cldt')207 type(ctrl_out) :: o_cldq = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldq')208 type(ctrl_out) :: o_lwp = ctrl_out((/ 1, 5, 10, 10, 10 /),'lwp')209 type(ctrl_out) :: o_iwp = ctrl_out((/ 1, 5, 10, 10, 10 /),'iwp')210 type(ctrl_out) :: o_ue = ctrl_out((/ 1, 10, 10, 10, 10 /),'ue')211 type(ctrl_out) :: o_ve = ctrl_out((/ 1, 10, 10, 10, 10 /),'ve')212 type(ctrl_out) :: o_uq = ctrl_out((/ 1, 10, 10, 10, 10 /),'uq')213 type(ctrl_out) :: o_vq = ctrl_out((/ 1, 10, 10, 10, 10 /),'vq')202 type(ctrl_out),save :: o_cdrm = ctrl_out((/ 1, 10, 10, 1, 10 /),'cdrm') 203 type(ctrl_out),save :: o_cdrh = ctrl_out((/ 1, 10, 10, 1, 10 /),'cdrh') 204 type(ctrl_out),save :: o_cldl = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldl') 205 type(ctrl_out),save :: o_cldm = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldm') 206 type(ctrl_out),save :: o_cldh = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldh') 207 type(ctrl_out),save :: o_cldt = ctrl_out((/ 1, 1, 2, 10, 10 /),'cldt') 208 type(ctrl_out),save :: o_cldq = ctrl_out((/ 1, 1, 10, 10, 10 /),'cldq') 209 type(ctrl_out),save :: o_lwp = ctrl_out((/ 1, 5, 10, 10, 10 /),'lwp') 210 type(ctrl_out),save :: o_iwp = ctrl_out((/ 1, 5, 10, 10, 10 /),'iwp') 211 type(ctrl_out),save :: o_ue = ctrl_out((/ 1, 10, 10, 10, 10 /),'ue') 212 type(ctrl_out),save :: o_ve = ctrl_out((/ 1, 10, 10, 10, 10 /),'ve') 213 type(ctrl_out),save :: o_uq = ctrl_out((/ 1, 10, 10, 10, 10 /),'uq') 214 type(ctrl_out),save :: o_vq = ctrl_out((/ 1, 10, 10, 10, 10 /),'vq') 214 215 215 type(ctrl_out) :: o_cape = ctrl_out((/ 1, 10, 10, 10, 10 /),'cape')216 type(ctrl_out) :: o_pbase = ctrl_out((/ 1, 10, 10, 10, 10 /),'pbase')217 type(ctrl_out) :: o_ptop = ctrl_out((/ 1, 4, 10, 10, 10 /),'ptop')218 type(ctrl_out) :: o_fbase = ctrl_out((/ 1, 10, 10, 10, 10 /),'fbase')219 type(ctrl_out) :: o_prw = ctrl_out((/ 1, 1, 10, 10, 10 /),'prw')220 221 type(ctrl_out) :: o_s_pblh = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_pblh')222 type(ctrl_out) :: o_s_pblt = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_pblt')223 type(ctrl_out) :: o_s_lcl = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_lcl')224 type(ctrl_out) :: o_s_capCL = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_capCL')225 type(ctrl_out) :: o_s_oliqCL = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_oliqCL')226 type(ctrl_out) :: o_s_cteiCL = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_cteiCL')227 type(ctrl_out) :: o_s_therm = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_therm')228 type(ctrl_out) :: o_s_trmb1 = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_trmb1')229 type(ctrl_out) :: o_s_trmb2 = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_trmb2')230 type(ctrl_out) :: o_s_trmb3 = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_trmb3')231 232 type(ctrl_out) :: o_slab_bils = ctrl_out((/ 1, 1, 10, 10, 10 /),'slab_bils_oce')233 234 type(ctrl_out) :: o_ale_bl = ctrl_out((/ 1, 1, 1, 1, 10 /),'ale_bl')235 type(ctrl_out) :: o_alp_bl = ctrl_out((/ 1, 1, 1, 1, 10 /),'alp_bl')236 type(ctrl_out) :: o_ale_wk = ctrl_out((/ 1, 1, 1, 1, 10 /),'ale_wk')237 type(ctrl_out) :: o_alp_wk = ctrl_out((/ 1, 1, 1, 1, 10 /),'alp_wk')238 239 type(ctrl_out) :: o_ale = ctrl_out((/ 1, 1, 1, 1, 10 /),'ale')240 type(ctrl_out) :: o_alp = ctrl_out((/ 1, 1, 1, 1, 10 /),'alp')241 type(ctrl_out) :: o_cin = ctrl_out((/ 1, 1, 1, 1, 10 /),'cin')242 type(ctrl_out) :: o_wape = ctrl_out((/ 1, 1, 1, 1, 10 /),'wape')216 type(ctrl_out),save :: o_cape = ctrl_out((/ 1, 10, 10, 10, 10 /),'cape') 217 type(ctrl_out),save :: o_pbase = ctrl_out((/ 1, 10, 10, 10, 10 /),'pbase') 218 type(ctrl_out),save :: o_ptop = ctrl_out((/ 1, 4, 10, 10, 10 /),'ptop') 219 type(ctrl_out),save :: o_fbase = ctrl_out((/ 1, 10, 10, 10, 10 /),'fbase') 220 type(ctrl_out),save :: o_prw = ctrl_out((/ 1, 1, 10, 10, 10 /),'prw') 221 222 type(ctrl_out),save :: o_s_pblh = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_pblh') 223 type(ctrl_out),save :: o_s_pblt = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_pblt') 224 type(ctrl_out),save :: o_s_lcl = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_lcl') 225 type(ctrl_out),save :: o_s_capCL = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_capCL') 226 type(ctrl_out),save :: o_s_oliqCL = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_oliqCL') 227 type(ctrl_out),save :: o_s_cteiCL = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_cteiCL') 228 type(ctrl_out),save :: o_s_therm = ctrl_out((/ 1, 10, 10, 1, 1 /),'s_therm') 229 type(ctrl_out),save :: o_s_trmb1 = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_trmb1') 230 type(ctrl_out),save :: o_s_trmb2 = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_trmb2') 231 type(ctrl_out),save :: o_s_trmb3 = ctrl_out((/ 1, 10, 10, 1, 10 /),'s_trmb3') 232 233 type(ctrl_out),save :: o_slab_bils = ctrl_out((/ 1, 1, 10, 10, 10 /),'slab_bils_oce') 234 235 type(ctrl_out),save :: o_ale_bl = ctrl_out((/ 1, 1, 1, 1, 10 /),'ale_bl') 236 type(ctrl_out),save :: o_alp_bl = ctrl_out((/ 1, 1, 1, 1, 10 /),'alp_bl') 237 type(ctrl_out),save :: o_ale_wk = ctrl_out((/ 1, 1, 1, 1, 10 /),'ale_wk') 238 type(ctrl_out),save :: o_alp_wk = ctrl_out((/ 1, 1, 1, 1, 10 /),'alp_wk') 239 240 type(ctrl_out),save :: o_ale = ctrl_out((/ 1, 1, 1, 1, 10 /),'ale') 241 type(ctrl_out),save :: o_alp = ctrl_out((/ 1, 1, 1, 1, 10 /),'alp') 242 type(ctrl_out),save :: o_cin = ctrl_out((/ 1, 1, 1, 1, 10 /),'cin') 243 type(ctrl_out),save :: o_wape = ctrl_out((/ 1, 1, 1, 1, 10 /),'wape') 243 244 244 245 … … 252 253 253 254 254 type(ctrl_out), dimension(4) :: o_uSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'u850'), &255 type(ctrl_out),save,dimension(4) :: o_uSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'u850'), & 255 256 ctrl_out((/ 1, 1, 3, 10, 10 /),'u700'), & 256 257 ctrl_out((/ 1, 1, 3, 10, 10 /),'u500'), & 257 258 ctrl_out((/ 1, 1, 3, 10, 10 /),'u200') /) 258 259 259 type(ctrl_out), dimension(4) :: o_vSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'v850'), &260 type(ctrl_out),save,dimension(4) :: o_vSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'v850'), & 260 261 ctrl_out((/ 1, 1, 3, 10, 10 /),'v700'), & 261 262 ctrl_out((/ 1, 1, 3, 10, 10 /),'v500'), & 262 263 ctrl_out((/ 1, 1, 3, 10, 10 /),'v200') /) 263 264 264 type(ctrl_out), dimension(4) :: o_wSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'w850'), &265 type(ctrl_out),save,dimension(4) :: o_wSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'w850'), & 265 266 ctrl_out((/ 1, 1, 3, 10, 10 /),'w700'), & 266 267 ctrl_out((/ 1, 1, 3, 10, 10 /),'w500'), & 267 268 ctrl_out((/ 1, 1, 3, 10, 10 /),'w200') /) 268 269 269 type(ctrl_out), dimension(4) :: o_tSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'t850'), &270 type(ctrl_out),save,dimension(4) :: o_tSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'t850'), & 270 271 ctrl_out((/ 1, 1, 3, 10, 10 /),'t700'), & 271 272 ctrl_out((/ 1, 1, 3, 10, 10 /),'t500'), & 272 273 ctrl_out((/ 1, 1, 3, 10, 10 /),'t200') /) 273 274 274 type(ctrl_out), dimension(4) :: o_qSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'q850'), &275 type(ctrl_out),save,dimension(4) :: o_qSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'q850'), & 275 276 ctrl_out((/ 1, 1, 3, 10, 10 /),'q700'), & 276 277 ctrl_out((/ 1, 1, 3, 10, 10 /),'q500'), & 277 278 ctrl_out((/ 1, 1, 3, 10, 10 /),'q200') /) 278 279 279 type(ctrl_out), dimension(4) :: o_phiSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'phi850'), &280 type(ctrl_out),save,dimension(4) :: o_phiSTDlevs = (/ ctrl_out((/ 1, 1, 3, 10, 10 /),'phi850'), & 280 281 ctrl_out((/ 1, 1, 3, 10, 10 /),'phi700'), & 281 282 ctrl_out((/ 1, 1, 3, 10, 10 /),'phi500'), & … … 283 284 284 285 285 type(ctrl_out) :: o_t_oce_sic = ctrl_out((/ 1, 10, 10, 10, 10 /),'t_oce_sic')286 287 type(ctrl_out) :: o_weakinv = ctrl_out((/ 10, 1, 10, 10, 10 /),'weakinv')288 type(ctrl_out) :: o_dthmin = ctrl_out((/ 10, 1, 10, 10, 10 /),'dthmin')289 type(ctrl_out), dimension(4) :: o_u10_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_ter'), &286 type(ctrl_out),save :: o_t_oce_sic = ctrl_out((/ 1, 10, 10, 10, 10 /),'t_oce_sic') 287 288 type(ctrl_out),save :: o_weakinv = ctrl_out((/ 10, 1, 10, 10, 10 /),'weakinv') 289 type(ctrl_out),save :: o_dthmin = ctrl_out((/ 10, 1, 10, 10, 10 /),'dthmin') 290 type(ctrl_out),save,dimension(4) :: o_u10_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_ter'), & 290 291 ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_lic'), & 291 292 ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_oce'), & 292 293 ctrl_out((/ 10, 4, 10, 10, 10 /),'u10_sic') /) 293 294 294 type(ctrl_out), dimension(4) :: o_v10_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_ter'), &295 type(ctrl_out),save,dimension(4) :: o_v10_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_ter'), & 295 296 ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_lic'), & 296 297 ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_oce'), & 297 298 ctrl_out((/ 10, 4, 10, 10, 10 /),'v10_sic') /) 298 299 299 type(ctrl_out) :: o_cldtau = ctrl_out((/ 10, 5, 10, 10, 10 /),'cldtau')300 type(ctrl_out) :: o_cldemi = ctrl_out((/ 10, 5, 10, 10, 10 /),'cldemi')301 type(ctrl_out) :: o_rh2m = ctrl_out((/ 10, 5, 10, 10, 10 /),'rh2m')302 type(ctrl_out) :: o_qsat2m = ctrl_out((/ 10, 5, 10, 10, 10 /),'qsat2m')303 type(ctrl_out) :: o_tpot = ctrl_out((/ 10, 5, 10, 10, 10 /),'tpot')304 type(ctrl_out) :: o_tpote = ctrl_out((/ 10, 5, 10, 10, 10 /),'tpote')305 type(ctrl_out) :: o_tke = ctrl_out((/ 4, 10, 10, 10, 10 /),'tke ')306 type(ctrl_out) :: o_tke_max = ctrl_out((/ 4, 10, 10, 10, 10 /),'tke_max')307 308 type(ctrl_out), dimension(4) :: o_tke_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_ter'), &300 type(ctrl_out),save :: o_cldtau = ctrl_out((/ 10, 5, 10, 10, 10 /),'cldtau') 301 type(ctrl_out),save :: o_cldemi = ctrl_out((/ 10, 5, 10, 10, 10 /),'cldemi') 302 type(ctrl_out),save :: o_rh2m = ctrl_out((/ 10, 5, 10, 10, 10 /),'rh2m') 303 type(ctrl_out),save :: o_qsat2m = ctrl_out((/ 10, 5, 10, 10, 10 /),'qsat2m') 304 type(ctrl_out),save :: o_tpot = ctrl_out((/ 10, 5, 10, 10, 10 /),'tpot') 305 type(ctrl_out),save :: o_tpote = ctrl_out((/ 10, 5, 10, 10, 10 /),'tpote') 306 type(ctrl_out),save :: o_tke = ctrl_out((/ 4, 10, 10, 10, 10 /),'tke ') 307 type(ctrl_out),save :: o_tke_max = ctrl_out((/ 4, 10, 10, 10, 10 /),'tke_max') 308 309 type(ctrl_out),save,dimension(4) :: o_tke_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_ter'), & 309 310 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_lic'), & 310 311 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_oce'), & 311 312 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_sic') /) 312 313 313 type(ctrl_out), dimension(4) :: o_tke_max_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_ter'), &314 type(ctrl_out),save,dimension(4) :: o_tke_max_srf = (/ ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_ter'), & 314 315 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_lic'), & 315 316 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_oce'), & 316 317 ctrl_out((/ 10, 4, 10, 10, 10 /),'tke_max_sic') /) 317 318 318 type(ctrl_out) :: o_kz = ctrl_out((/ 4, 10, 10, 10, 10 /),'kz')319 type(ctrl_out) :: o_kz_max = ctrl_out((/ 4, 10, 10, 10, 10 /),'kz_max')320 type(ctrl_out) :: o_SWnetOR = ctrl_out((/ 10, 10, 2, 10, 10 /),'SWnetOR')321 type(ctrl_out) :: o_SWdownOR = ctrl_out((/ 10, 10, 2, 10, 10 /),'SWdownOR')322 type(ctrl_out) :: o_LWdownOR = ctrl_out((/ 10, 10, 2, 10, 10 /),'LWdownOR')323 324 type(ctrl_out) :: o_snowl = ctrl_out((/ 10, 1, 10, 10, 10 /),'snowl')325 type(ctrl_out) :: o_cape_max = ctrl_out((/ 10, 1, 10, 10, 10 /),'cape_max')326 type(ctrl_out) :: o_solldown = ctrl_out((/ 10, 1, 10, 1, 10 /),'solldown')327 328 type(ctrl_out) :: o_dtsvdfo = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdfo')329 type(ctrl_out) :: o_dtsvdft = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdft')330 type(ctrl_out) :: o_dtsvdfg = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdfg')331 type(ctrl_out) :: o_dtsvdfi = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdfi')332 type(ctrl_out) :: o_rugs = ctrl_out((/ 10, 10, 10, 1, 1 /),'rugs')333 334 type(ctrl_out) :: o_topswad = ctrl_out((/ 4, 10, 10, 10, 10 /),'topswad')335 type(ctrl_out) :: o_topswai = ctrl_out((/ 4, 10, 10, 10, 10 /),'topswai')336 type(ctrl_out) :: o_solswad = ctrl_out((/ 4, 10, 10, 10, 10 /),'solswad')337 type(ctrl_out) :: o_solswai = ctrl_out((/ 4, 10, 10, 10, 10 /),'solswai')319 type(ctrl_out),save :: o_kz = ctrl_out((/ 4, 10, 10, 10, 10 /),'kz') 320 type(ctrl_out),save :: o_kz_max = ctrl_out((/ 4, 10, 10, 10, 10 /),'kz_max') 321 type(ctrl_out),save :: o_SWnetOR = ctrl_out((/ 10, 10, 2, 10, 10 /),'SWnetOR') 322 type(ctrl_out),save :: o_SWdownOR = ctrl_out((/ 10, 10, 2, 10, 10 /),'SWdownOR') 323 type(ctrl_out),save :: o_LWdownOR = ctrl_out((/ 10, 10, 2, 10, 10 /),'LWdownOR') 324 325 type(ctrl_out),save :: o_snowl = ctrl_out((/ 10, 1, 10, 10, 10 /),'snowl') 326 type(ctrl_out),save :: o_cape_max = ctrl_out((/ 10, 1, 10, 10, 10 /),'cape_max') 327 type(ctrl_out),save :: o_solldown = ctrl_out((/ 10, 1, 10, 1, 10 /),'solldown') 328 329 type(ctrl_out),save :: o_dtsvdfo = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdfo') 330 type(ctrl_out),save :: o_dtsvdft = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdft') 331 type(ctrl_out),save :: o_dtsvdfg = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdfg') 332 type(ctrl_out),save :: o_dtsvdfi = ctrl_out((/ 10, 10, 10, 1, 10 /),'dtsvdfi') 333 type(ctrl_out),save :: o_rugs = ctrl_out((/ 10, 10, 10, 1, 1 /),'rugs') 334 335 type(ctrl_out),save :: o_topswad = ctrl_out((/ 4, 10, 10, 10, 10 /),'topswad') 336 type(ctrl_out),save :: o_topswai = ctrl_out((/ 4, 10, 10, 10, 10 /),'topswai') 337 type(ctrl_out),save :: o_solswad = ctrl_out((/ 4, 10, 10, 10, 10 /),'solswad') 338 type(ctrl_out),save :: o_solswai = ctrl_out((/ 4, 10, 10, 10, 10 /),'solswai') 338 339 !!!!!!!!!!!!!!!!!!!!!! 3D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 339 type(ctrl_out) :: o_lwcon = ctrl_out((/ 2, 5, 10, 10, 1 /),'lwcon')340 type(ctrl_out) :: o_iwcon = ctrl_out((/ 2, 5, 10, 10, 10 /),'iwcon')341 type(ctrl_out) :: o_temp = ctrl_out((/ 2, 3, 4, 1, 1 /),'temp')342 type(ctrl_out) :: o_theta = ctrl_out((/ 2, 3, 4, 1, 1 /),'theta')343 type(ctrl_out) :: o_ovap = ctrl_out((/ 2, 3, 4, 1, 1 /),'ovap')344 type(ctrl_out) :: o_ovapinit = ctrl_out((/ 2, 3, 4, 1, 1 /),'ovapinit')345 type(ctrl_out) :: o_wvapp = ctrl_out((/ 2, 10, 10, 10, 10 /),'wvapp')346 type(ctrl_out) :: o_geop = ctrl_out((/ 2, 3, 10, 1, 1 /),'geop')347 type(ctrl_out) :: o_vitu = ctrl_out((/ 2, 3, 4, 1, 1 /),'vitu')348 type(ctrl_out) :: o_vitv = ctrl_out((/ 2, 3, 4, 1, 1 /),'vitv')349 type(ctrl_out) :: o_vitw = ctrl_out((/ 2, 3, 10, 10, 1 /),'vitw')350 type(ctrl_out) :: o_pres = ctrl_out((/ 2, 3, 10, 1, 1 /),'pres')351 type(ctrl_out) :: o_rneb = ctrl_out((/ 2, 5, 10, 10, 1 /),'rneb')352 type(ctrl_out) :: o_rnebcon = ctrl_out((/ 2, 5, 10, 10, 1 /),'rnebcon')353 type(ctrl_out) :: o_rhum = ctrl_out((/ 2, 10, 10, 10, 10 /),'rhum')354 type(ctrl_out) :: o_ozone = ctrl_out((/ 2, 10, 10, 10, 10 /),'ozone')355 type(ctrl_out) :: o_upwd = ctrl_out((/ 2, 10, 10, 10, 10 /),'upwd')356 type(ctrl_out) :: o_dtphy = ctrl_out((/ 2, 10, 10, 10, 1 /),'dtphy')357 type(ctrl_out) :: o_dqphy = ctrl_out((/ 2, 10, 10, 10, 1 /),'dqphy')358 type(ctrl_out) :: o_pr_con_l = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_con_l')359 type(ctrl_out) :: o_pr_con_i = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_con_i')360 type(ctrl_out) :: o_pr_lsc_l = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_lsc_l')361 type(ctrl_out) :: o_pr_lsc_i = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_lsc_i')340 type(ctrl_out),save :: o_lwcon = ctrl_out((/ 2, 5, 10, 10, 1 /),'lwcon') 341 type(ctrl_out),save :: o_iwcon = ctrl_out((/ 2, 5, 10, 10, 10 /),'iwcon') 342 type(ctrl_out),save :: o_temp = ctrl_out((/ 2, 3, 4, 1, 1 /),'temp') 343 type(ctrl_out),save :: o_theta = ctrl_out((/ 2, 3, 4, 1, 1 /),'theta') 344 type(ctrl_out),save :: o_ovap = ctrl_out((/ 2, 3, 4, 1, 1 /),'ovap') 345 type(ctrl_out),save :: o_ovapinit = ctrl_out((/ 2, 3, 4, 1, 1 /),'ovapinit') 346 type(ctrl_out),save :: o_wvapp = ctrl_out((/ 2, 10, 10, 10, 10 /),'wvapp') 347 type(ctrl_out),save :: o_geop = ctrl_out((/ 2, 3, 10, 1, 1 /),'geop') 348 type(ctrl_out),save :: o_vitu = ctrl_out((/ 2, 3, 4, 1, 1 /),'vitu') 349 type(ctrl_out),save :: o_vitv = ctrl_out((/ 2, 3, 4, 1, 1 /),'vitv') 350 type(ctrl_out),save :: o_vitw = ctrl_out((/ 2, 3, 10, 10, 1 /),'vitw') 351 type(ctrl_out),save :: o_pres = ctrl_out((/ 2, 3, 10, 1, 1 /),'pres') 352 type(ctrl_out),save :: o_rneb = ctrl_out((/ 2, 5, 10, 10, 1 /),'rneb') 353 type(ctrl_out),save :: o_rnebcon = ctrl_out((/ 2, 5, 10, 10, 1 /),'rnebcon') 354 type(ctrl_out),save :: o_rhum = ctrl_out((/ 2, 10, 10, 10, 10 /),'rhum') 355 type(ctrl_out),save :: o_ozone = ctrl_out((/ 2, 10, 10, 10, 10 /),'ozone') 356 type(ctrl_out),save :: o_upwd = ctrl_out((/ 2, 10, 10, 10, 10 /),'upwd') 357 type(ctrl_out),save :: o_dtphy = ctrl_out((/ 2, 10, 10, 10, 1 /),'dtphy') 358 type(ctrl_out),save :: o_dqphy = ctrl_out((/ 2, 10, 10, 10, 1 /),'dqphy') 359 type(ctrl_out),save :: o_pr_con_l = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_con_l') 360 type(ctrl_out),save :: o_pr_con_i = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_con_i') 361 type(ctrl_out),save :: o_pr_lsc_l = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_lsc_l') 362 type(ctrl_out),save :: o_pr_lsc_i = ctrl_out((/ 2, 10, 10, 10, 10 /),'pr_lsc_i') 362 363 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 363 364 364 type(ctrl_out), dimension(4) :: o_albe_srf = (/ ctrl_out((/ 3, 4, 10, 1, 10 /),'albe_ter'), &365 type(ctrl_out),save,dimension(4) :: o_albe_srf = (/ ctrl_out((/ 3, 4, 10, 1, 10 /),'albe_ter'), & 365 366 ctrl_out((/ 3, 4, 10, 1, 10 /),'albe_lic'), & 366 367 ctrl_out((/ 3, 4, 10, 1, 10 /),'albe_oce'), & 367 368 ctrl_out((/ 3, 4, 10, 1, 10 /),'albe_sic') /) 368 369 369 type(ctrl_out), dimension(4) :: o_ages_srf = (/ ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_ter'), &370 type(ctrl_out),save,dimension(4) :: o_ages_srf = (/ ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_ter'), & 370 371 ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_lic'), & 371 372 ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_oce'), & 372 373 ctrl_out((/ 3, 10, 10, 10, 10 /),'ages_sic') /) 373 374 374 type(ctrl_out), dimension(4) :: o_rugs_srf = (/ ctrl_out((/ 3, 4, 10, 1, 10 /),'rugs_ter'), &375 type(ctrl_out),save,dimension(4) :: o_rugs_srf = (/ ctrl_out((/ 3, 4, 10, 1, 10 /),'rugs_ter'), & 375 376 ctrl_out((/ 3, 4, 10, 1, 10 /),'rugs_lic'), & 376 377 ctrl_out((/ 3, 4, 10, 1, 10 /),'rugs_oce'), & 377 378 ctrl_out((/ 3, 4, 10, 1, 10 /),'rugs_sic') /) 378 379 379 type(ctrl_out) :: o_albs = ctrl_out((/ 3, 10, 10, 1, 10 /),'albs')380 type(ctrl_out) :: o_albslw = ctrl_out((/ 3, 10, 10, 1, 10 /),'albslw')381 382 type(ctrl_out) :: o_clwcon = ctrl_out((/ 4, 10, 10, 10, 10 /),'clwcon')383 type(ctrl_out) :: o_Ma = ctrl_out((/ 4, 10, 10, 10, 10 /),'Ma')384 type(ctrl_out) :: o_dnwd = ctrl_out((/ 4, 10, 10, 10, 10 /),'dnwd')385 type(ctrl_out) :: o_dnwd0 = ctrl_out((/ 4, 10, 10, 10, 10 /),'dnwd0')386 type(ctrl_out) :: o_dtdyn = ctrl_out((/ 4, 10, 10, 10, 1 /),'dtdyn')387 type(ctrl_out) :: o_dqdyn = ctrl_out((/ 4, 10, 10, 10, 1 /),'dqdyn')388 type(ctrl_out) :: o_dudyn = ctrl_out((/ 4, 10, 10, 10, 1 /),'dudyn') !AXC389 type(ctrl_out) :: o_dvdyn = ctrl_out((/ 4, 10, 10, 10, 1 /),'dvdyn') !AXC390 type(ctrl_out) :: o_dtcon = ctrl_out((/ 4, 5, 10, 10, 10 /),'dtcon')391 type(ctrl_out) :: o_ducon = ctrl_out((/ 4, 10, 10, 10, 10 /),'ducon')392 type(ctrl_out) :: o_dqcon = ctrl_out((/ 4, 5, 10, 10, 10 /),'dqcon')393 type(ctrl_out) :: o_dtwak = ctrl_out((/ 4, 5, 10, 10, 10 /),'dtwak')394 type(ctrl_out) :: o_dqwak = ctrl_out((/ 4, 5, 10, 10, 10 /),'dqwak')395 type(ctrl_out) :: o_wake_h = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_h')396 type(ctrl_out) :: o_wake_s = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_s')397 type(ctrl_out) :: o_wake_deltat = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_deltat')398 type(ctrl_out) :: o_wake_deltaq = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_deltaq')399 type(ctrl_out) :: o_wake_omg = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_omg')400 type(ctrl_out) :: o_Vprecip = ctrl_out((/ 10, 10, 10, 10, 10 /),'Vprecip')401 type(ctrl_out) :: o_ftd = ctrl_out((/ 4, 5, 10, 10, 10 /),'ftd')402 type(ctrl_out) :: o_fqd = ctrl_out((/ 4, 5, 10, 10, 10 /),'fqd')403 type(ctrl_out) :: o_dtlsc = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlsc')404 type(ctrl_out) :: o_dtlschr = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlschr')405 type(ctrl_out) :: o_dqlsc = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqlsc')406 type(ctrl_out) :: o_dtvdf = ctrl_out((/ 4, 10, 10, 1, 10 /),'dtvdf')407 type(ctrl_out) :: o_dqvdf = ctrl_out((/ 4, 10, 10, 1, 10 /),'dqvdf')408 type(ctrl_out) :: o_dteva = ctrl_out((/ 4, 10, 10, 10, 10 /),'dteva')409 type(ctrl_out) :: o_dqeva = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqeva')410 type(ctrl_out) :: o_ptconv = ctrl_out((/ 4, 10, 10, 10, 10 /),'ptconv')411 type(ctrl_out) :: o_ratqs = ctrl_out((/ 4, 10, 10, 10, 10 /),'ratqs')412 type(ctrl_out) :: o_dtthe = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtthe')413 type(ctrl_out) :: o_f_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'f_th')414 type(ctrl_out) :: o_e_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'e_th')415 type(ctrl_out) :: o_w_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'w_th')416 type(ctrl_out) :: o_lambda_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'lambda_th')417 type(ctrl_out) :: o_q_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'q_th')418 type(ctrl_out) :: o_a_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'a_th')419 type(ctrl_out) :: o_d_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'d_th')420 type(ctrl_out) :: o_f0_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'f0_th')421 type(ctrl_out) :: o_zmax_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'zmax_th')422 type(ctrl_out) :: o_dqthe = ctrl_out((/ 4, 10, 10, 10, 1 /),'dqthe')423 type(ctrl_out) :: o_dtajs = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtajs')424 type(ctrl_out) :: o_dqajs = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqajs')425 type(ctrl_out) :: o_dtswr = ctrl_out((/ 4, 10, 10, 10, 1 /),'dtswr')426 type(ctrl_out) :: o_dtsw0 = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtsw0')427 type(ctrl_out) :: o_dtlwr = ctrl_out((/ 4, 10, 10, 10, 1 /),'dtlwr')428 type(ctrl_out) :: o_dtlw0 = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlw0')429 type(ctrl_out) :: o_dtec = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtec')430 type(ctrl_out) :: o_duvdf = ctrl_out((/ 4, 10, 10, 10, 10 /),'duvdf')431 type(ctrl_out) :: o_dvvdf = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvvdf')432 type(ctrl_out) :: o_duoro = ctrl_out((/ 4, 10, 10, 10, 10 /),'duoro')433 type(ctrl_out) :: o_dvoro = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvoro')434 type(ctrl_out) :: o_dulif = ctrl_out((/ 4, 10, 10, 10, 10 /),'dulif')435 type(ctrl_out) :: o_dvlif = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvlif')380 type(ctrl_out),save :: o_albs = ctrl_out((/ 3, 10, 10, 1, 10 /),'albs') 381 type(ctrl_out),save :: o_albslw = ctrl_out((/ 3, 10, 10, 1, 10 /),'albslw') 382 383 type(ctrl_out),save :: o_clwcon = ctrl_out((/ 4, 10, 10, 10, 10 /),'clwcon') 384 type(ctrl_out),save :: o_Ma = ctrl_out((/ 4, 10, 10, 10, 10 /),'Ma') 385 type(ctrl_out),save :: o_dnwd = ctrl_out((/ 4, 10, 10, 10, 10 /),'dnwd') 386 type(ctrl_out),save :: o_dnwd0 = ctrl_out((/ 4, 10, 10, 10, 10 /),'dnwd0') 387 type(ctrl_out),save :: o_dtdyn = ctrl_out((/ 4, 10, 10, 10, 1 /),'dtdyn') 388 type(ctrl_out),save :: o_dqdyn = ctrl_out((/ 4, 10, 10, 10, 1 /),'dqdyn') 389 type(ctrl_out),save :: o_dudyn = ctrl_out((/ 4, 10, 10, 10, 1 /),'dudyn') !AXC 390 type(ctrl_out),save :: o_dvdyn = ctrl_out((/ 4, 10, 10, 10, 1 /),'dvdyn') !AXC 391 type(ctrl_out),save :: o_dtcon = ctrl_out((/ 4, 5, 10, 10, 10 /),'dtcon') 392 type(ctrl_out),save :: o_ducon = ctrl_out((/ 4, 10, 10, 10, 10 /),'ducon') 393 type(ctrl_out),save :: o_dqcon = ctrl_out((/ 4, 5, 10, 10, 10 /),'dqcon') 394 type(ctrl_out),save :: o_dtwak = ctrl_out((/ 4, 5, 10, 10, 10 /),'dtwak') 395 type(ctrl_out),save :: o_dqwak = ctrl_out((/ 4, 5, 10, 10, 10 /),'dqwak') 396 type(ctrl_out),save :: o_wake_h = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_h') 397 type(ctrl_out),save :: o_wake_s = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_s') 398 type(ctrl_out),save :: o_wake_deltat = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_deltat') 399 type(ctrl_out),save :: o_wake_deltaq = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_deltaq') 400 type(ctrl_out),save :: o_wake_omg = ctrl_out((/ 4, 5, 10, 10, 10 /),'wake_omg') 401 type(ctrl_out),save :: o_Vprecip = ctrl_out((/ 10, 10, 10, 10, 10 /),'Vprecip') 402 type(ctrl_out),save :: o_ftd = ctrl_out((/ 4, 5, 10, 10, 10 /),'ftd') 403 type(ctrl_out),save :: o_fqd = ctrl_out((/ 4, 5, 10, 10, 10 /),'fqd') 404 type(ctrl_out),save :: o_dtlsc = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlsc') 405 type(ctrl_out),save :: o_dtlschr = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlschr') 406 type(ctrl_out),save :: o_dqlsc = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqlsc') 407 type(ctrl_out),save :: o_dtvdf = ctrl_out((/ 4, 10, 10, 1, 10 /),'dtvdf') 408 type(ctrl_out),save :: o_dqvdf = ctrl_out((/ 4, 10, 10, 1, 10 /),'dqvdf') 409 type(ctrl_out),save :: o_dteva = ctrl_out((/ 4, 10, 10, 10, 10 /),'dteva') 410 type(ctrl_out),save :: o_dqeva = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqeva') 411 type(ctrl_out),save :: o_ptconv = ctrl_out((/ 4, 10, 10, 10, 10 /),'ptconv') 412 type(ctrl_out),save :: o_ratqs = ctrl_out((/ 4, 10, 10, 10, 10 /),'ratqs') 413 type(ctrl_out),save :: o_dtthe = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtthe') 414 type(ctrl_out),save :: o_f_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'f_th') 415 type(ctrl_out),save :: o_e_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'e_th') 416 type(ctrl_out),save :: o_w_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'w_th') 417 type(ctrl_out),save :: o_lambda_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'lambda_th') 418 type(ctrl_out),save :: o_q_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'q_th') 419 type(ctrl_out),save :: o_a_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'a_th') 420 type(ctrl_out),save :: o_d_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'d_th') 421 type(ctrl_out),save :: o_f0_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'f0_th') 422 type(ctrl_out),save :: o_zmax_th = ctrl_out((/ 4, 10, 10, 10, 10 /),'zmax_th') 423 type(ctrl_out),save :: o_dqthe = ctrl_out((/ 4, 10, 10, 10, 1 /),'dqthe') 424 type(ctrl_out),save :: o_dtajs = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtajs') 425 type(ctrl_out),save :: o_dqajs = ctrl_out((/ 4, 10, 10, 10, 10 /),'dqajs') 426 type(ctrl_out),save :: o_dtswr = ctrl_out((/ 4, 10, 10, 10, 1 /),'dtswr') 427 type(ctrl_out),save :: o_dtsw0 = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtsw0') 428 type(ctrl_out),save :: o_dtlwr = ctrl_out((/ 4, 10, 10, 10, 1 /),'dtlwr') 429 type(ctrl_out),save :: o_dtlw0 = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtlw0') 430 type(ctrl_out),save :: o_dtec = ctrl_out((/ 4, 10, 10, 10, 10 /),'dtec') 431 type(ctrl_out),save :: o_duvdf = ctrl_out((/ 4, 10, 10, 10, 10 /),'duvdf') 432 type(ctrl_out),save :: o_dvvdf = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvvdf') 433 type(ctrl_out),save :: o_duoro = ctrl_out((/ 4, 10, 10, 10, 10 /),'duoro') 434 type(ctrl_out),save :: o_dvoro = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvoro') 435 type(ctrl_out),save :: o_dulif = ctrl_out((/ 4, 10, 10, 10, 10 /),'dulif') 436 type(ctrl_out),save :: o_dvlif = ctrl_out((/ 4, 10, 10, 10, 10 /),'dvlif') 436 437 437 438 ! Attention a refaire correctement 438 type(ctrl_out), dimension(2) :: o_trac = (/ ctrl_out((/ 4, 10, 10, 10, 10 /),'trac01'), &439 type(ctrl_out),save,dimension(2) :: o_trac = (/ ctrl_out((/ 4, 10, 10, 10, 10 /),'trac01'), & 439 440 ctrl_out((/ 4, 10, 10, 10, 10 /),'trac02') /) 440 441 CONTAINS … … 446 447 447 448 SUBROUTINE phys_output_open(jjmp1,nlevSTD,clevSTD,nbteta, & 448 ctetaSTD,dtime, ok_veget, &449 ctetaSTD,dtime, ok_veget, & 449 450 type_ocean, iflag_pbl,ok_mensuel,ok_journe, & 450 451 ok_hf,ok_instan,ok_LES,ok_ade,ok_aie) … … 471 472 integer :: idayref 472 473 real :: zjulian 473 ! real, dimension(klev) :: presnivs 474 real, dimension(klev) :: Ahyb, Bhyb, Lev, Alt 474 real, dimension(klev) :: Ahyb, Bhyb, Alt 475 475 character(len=4), dimension(nlevSTD) :: clevSTD 476 476 integer :: nsrf, k, iq, iiq, iff, i, j, ilev … … 553 553 zdtime = dtime ! Frequence ou l on moyenne 554 554 555 ! Calcul des Ahyb, Bhyb et Alt 555 556 do k=1,klev 556 557 Ahyb(k)=(ap(k)+ap(k+1))/2. 557 558 Bhyb(k)=(bp(k)+bp(k+1))/2. 558 Lev(k)=Ahyb(k)/preff+Bhyb(k)559 559 Alt(k)=log(preff/presnivs(k))*8. 560 560 enddo … … 562 562 print*,'Ap Hybrid = ',Ahyb(1:klev) 563 563 print*,'Bp Hybrid = ',Bhyb(1:klev) 564 print*,'Hybrid sigma-pressure = ',Lev(1:klev)565 564 print*,'Alt approx des couches pour une haut d echelle de 8km = ',Alt(1:klev) 566 565 ! endif 567 568 566 DO iff=1,nfiles 569 567 … … 627 625 ! & klev, presnivs/100., nvertm) 628 626 ! ENDIF 629 !!!! Ap, Bp, Lev, preff !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 630 CALL histvert(nid_files(iff), "Ap","Ap comp of Hyb Cord", "Pa", & 627 ! 628 !!!! Composentes de la coordonnee sigma-hybride 629 CALL histvert(nid_files(iff), "Ahyb","Ahyb comp of Hyb Cord ", "Pa", & 631 630 levmax(iff) - levmin(iff) + 1,Ahyb,nvertap(iff)) 632 631 633 CALL histvert(nid_files(iff), "B p","Bpcomp of Hyb Cord", " ", &632 CALL histvert(nid_files(iff), "Bhyb","Bhyb comp of Hyb Cord", " ", & 634 633 levmax(iff) - levmin(iff) + 1,Bhyb,nvertbp(iff)) 635 636 CALL histvert(nid_files(iff), "Lev","Hybrid Sigma-pressure coordinate", "Pa", & 637 levmax(iff) - levmin(iff) + 1,Lev,nvertLev(iff)) 638 639 CALL histvert(nid_files(iff), "Alt","Height approx for scale heigh of 8km at levels", "m", & 634 635 CALL histvert(nid_files(iff), "Alt","Height approx for scale heigh of 8km at levels", "Km", & 640 636 levmax(iff) - levmin(iff) + 1,Alt,nvertAlt(iff)) 641 637 642 638 ! CALL histvert(nid_files(iff), "preff","Reference pressure", "Pa", & 643 639 ! 1,preff,nvertp0(iff)) 644 645 640 !!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 646 641 CALL histdef2d(iff,o_phis%flag,o_phis%name,"Surface geop.height", "m2/s2") … … 654 649 type_ecri(:) = type_ecri_files(:) 655 650 656 !!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!651 !!! Champs 2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 657 652 CALL histdef2d(iff,o_contfracOR%flag,o_contfracOR%name,"% sfce terre OR", "-" ) 658 653 CALL histdef2d(iff,o_aireTER%flag,o_aireTER%name,"Grid area CONT", "-" ) … … 1018 1013 end subroutine phys_output_open 1019 1014 1020 SUBROUTINE histdef1d (iff,flag_var,nomvar,titrevar,unitvar)1021 1022 use ioipsl1023 USE dimphy1024 USE mod_phys_lmdz_para1025 1026 IMPLICIT NONE1027 1028 include "dimensions.h"1029 include "temps.h"1030 include "indicesol.h"1031 include "clesphys.h"1032 1033 integer :: iff1034 integer, dimension(nfiles) :: flag_var1035 character(len=20) :: nomvar1036 character(len=*) :: titrevar1037 character(len=*) :: unitvar1038 1039 real zstophym1040 1041 if (type_ecri(iff)=='inst(X)') then1042 zstophym=zoutm(iff)1043 else1044 zstophym=zdtime1045 endif1046 1047 ! Appel a la lecture des noms et niveau d'ecriture des variables dans output.def1048 call conf_physoutputs(nomvar,flag_var)1049 1050 if ( flag_var(iff)<=lev_files(iff) ) then1051 call histdef (nid_files(iff),nomvar,titrevar,unitvar, &1052 1,1,nhorim(iff), klev,1,klev,nvertm(iff), &1053 32, type_ecri(iff), zstophym,zoutm(iff))1054 1055 endif1056 end subroutine histdef1d1057 1058 1059 1015 SUBROUTINE histdef2d (iff,flag_var,nomvar,titrevar,unitvar) 1060 1016 … … 1143 1099 character(len=20) :: nam_var 1144 1100 integer, dimension(nfiles) :: flag_var 1145 integer, dimension(nfiles),save :: flag_var_omp 1146 character(len=20),save :: nam_var_omp 1147 1148 flag_var_omp = flag_var 1149 nam_var_omp = nam_var 1101 1150 1102 IF(prt_level>10) WRITE(lunout,*)'Avant getin: nam_var flag_var ',nam_var,flag_var(:) 1151 call getin('flag_'//nam_var,flag_var_omp) 1152 flag_var = flag_var_omp 1153 call getin('name_'//nam_var,nam_var_omp) 1154 nam_var=nam_var_omp 1155 1103 call getin('flag_'//nam_var,flag_var) 1104 call getin('name_'//nam_var,nam_var) 1156 1105 IF(prt_level>10) WRITE(lunout,*)'Apres getin: nam_var flag_var ',nam_var,flag_var(:) 1157 1106
Note: See TracChangeset
for help on using the changeset viewer.