- Timestamp:
- Aug 6, 2021, 4:30:26 PM (3 years ago)
- Location:
- LMDZ6/trunk/libf
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d/iniacademic.F90
r2622 r3976 67 67 LOGICAL ok_geost ! Initialisation vent geost. ou nul 68 68 LOGICAL ok_pv ! Polar Vortex 69 REAL phi_pv,dphi_pv,gam_pv ! Constantes pour polar vortex69 REAL phi_pv,dphi_pv,gam_pv,tetanoise ! Constantes pour polar vortex 70 70 71 71 real zz,ran1 … … 117 117 CALL inigeom 118 118 CALL inifilr 119 120 ! Initialize pressure and mass field if read_start=.false. 121 IF (.NOT. read_start) THEN 122 ! surface pressure 123 if (iflag_phys>2) then 124 ! specific value for CMIP5 aqua/terra planets 125 ! "Specify the initial dry mass to be equivalent to 126 ! a global mean surface pressure (101325 minus 245) Pa." 127 ps(:)=101080. 128 else 129 ! use reference surface pressure 130 ps(:)=preff 131 endif 132 ! ground geopotential 133 phis(:)=0. 134 CALL pression ( ip1jmp1, ap, bp, ps, p ) 135 if (pressure_exner) then 136 CALL exner_hyb( ip1jmp1, ps, p, pks, pk) 137 else 138 call exner_milieu(ip1jmp1,ps,p,pks,pk) 139 endif 140 CALL massdair(p,masse) 141 ENDIF 119 142 120 143 if (llm == 1) then … … 167 190 gam_pv=4. ! -dT/dz vortex (in K/km) 168 191 CALL getin('gam_pv',gam_pv) 192 tetanoise=0.005 193 CALL getin('tetanoise',tetanoise) 194 169 195 170 196 ! 2. Initialize fields towards which to relax … … 219 245 ! 3. Initialize fields (if necessary) 220 246 IF (.NOT. read_start) THEN 221 ! surface pressure222 if (iflag_phys>2) then223 ! specific value for CMIP5 aqua/terra planets224 ! "Specify the initial dry mass to be equivalent to225 ! a global mean surface pressure (101325 minus 245) Pa."226 ps(:)=101080.227 else228 ! use reference surface pressure229 ps(:)=preff230 endif231 232 ! ground geopotential233 phis(:)=0.234 235 CALL pression ( ip1jmp1, ap, bp, ps, p )236 if (pressure_exner) then237 CALL exner_hyb( ip1jmp1, ps, p, pks, pk)238 else239 call exner_milieu(ip1jmp1,ps,p,pks,pk)240 endif241 CALL massdair(p,masse)242 243 247 ! bulk initialization of temperature 244 teta(:,:)=tetarappel(:,:) 248 249 IF (iflag_phys>10000) THEN 250 ! Particular case to impose a constant temperature T0=0.01*iflag_physx 251 teta(:,:)= 0.01*iflag_phys/(pk(:,:)/cpp) 252 ELSE 253 teta(:,:)=tetarappel(:,:) 254 ENDIF 245 255 246 256 ! geopotential 247 257 CALL geopot(ip1jmp1,teta,pk,pks,phis,phi) 258 259 DO l=1,llm 260 print*,'presnivs,play,l',presnivs(l),(pk(1,l)/cpp)**(1./kappa)*preff 261 !pks(ij) = (cpp/preff) * ps(ij) 262 !pk(ij,1) = .5*pks(ij) 263 ! pk = cpp * (p/preff)^kappa 264 ENDDO 248 265 249 266 ! winds … … 292 309 do l=1,llm 293 310 do ij=iip2,ip1jm 294 teta(ij,l)=teta(ij,l)*(1.+ 0.005*ran1(idum))311 teta(ij,l)=teta(ij,l)*(1.+tetanoise*ran1(idum)) 295 312 enddo 296 313 enddo -
LMDZ6/trunk/libf/dyn3dmem/iniacademic_loc.F90
r3435 r3976 73 73 LOGICAL ok_geost ! Initialisation vent geost. ou nul 74 74 LOGICAL ok_pv ! Polar Vortex 75 REAL phi_pv,dphi_pv,gam_pv ! Constantes pour polar vortex75 REAL phi_pv,dphi_pv,gam_pv,tetanoise ! Constantes pour polar vortex 76 76 77 77 real zz,ran1 … … 122 122 CALL inigeom 123 123 CALL inifilr 124 125 ! Initialize pressure and mass field if read_start=.false. 126 IF (.NOT. read_start) THEN 127 ! allocate global fields: 128 ! allocate(vcov_glo(ip1jm,llm)) 129 allocate(ucov_glo(ip1jmp1,llm)) 130 allocate(teta_glo(ip1jmp1,llm)) 131 allocate(ps_glo(ip1jmp1)) 132 allocate(masse_glo(ip1jmp1,llm)) 133 allocate(phis_glo(ip1jmp1)) 134 135 ! surface pressure 136 if (iflag_phys>2) then 137 ! specific value for CMIP5 aqua/terra planets 138 ! "Specify the initial dry mass to be equivalent to 139 ! a global mean surface pressure (101325 minus 245) Pa." 140 ps_glo(:)=101080. 141 else 142 ! use reference surface pressure 143 ps_glo(:)=preff 144 endif 145 146 ! ground geopotential 147 phis_glo(:)=0. 148 149 CALL pression ( ip1jmp1, ap, bp, ps_glo, p ) 150 if (pressure_exner) then 151 CALL exner_hyb( ip1jmp1, ps_glo, p, pks, pk ) 152 else 153 call exner_milieu(ip1jmp1,ps_glo,p,pks,pk) 154 endif 155 CALL massdair(p,masse_glo) 156 ENDIF 157 124 158 125 159 if (llm == 1) then … … 172 206 gam_pv=4. ! -dT/dz vortex (in K/km) 173 207 CALL getin('gam_pv',gam_pv) 208 tetanoise=0.005 209 CALL getin('tetanoise',tetanoise) 174 210 175 211 ! 2. Initialize fields towards which to relax … … 224 260 ! 3. Initialize fields (if necessary) 225 261 IF (.NOT. read_start) THEN 226 ! allocate global fields:227 ! allocate(vcov_glo(ip1jm,llm))228 allocate(ucov_glo(ip1jmp1,llm))229 allocate(teta_glo(ip1jmp1,llm))230 allocate(ps_glo(ip1jmp1))231 allocate(masse_glo(ip1jmp1,llm))232 allocate(phis_glo(ip1jmp1))233 234 ! surface pressure235 if (iflag_phys>2) then236 ! specific value for CMIP5 aqua/terra planets237 ! "Specify the initial dry mass to be equivalent to238 ! a global mean surface pressure (101325 minus 245) Pa."239 ps_glo(:)=101080.240 else241 ! use reference surface pressure242 ps_glo(:)=preff243 endif244 245 ! ground geopotential246 phis_glo(:)=0.247 248 CALL pression ( ip1jmp1, ap, bp, ps_glo, p )249 if (pressure_exner) then250 CALL exner_hyb( ip1jmp1, ps_glo, p, pks, pk )251 else252 call exner_milieu(ip1jmp1,ps_glo,p,pks,pk)253 endif254 CALL massdair(p,masse_glo)255 256 262 ! bulk initialization of temperature 257 teta_glo(:,:)=tetarappel(:,:) 258 263 IF (iflag_phys>10000) THEN 264 ! Particular case to impose a constant temperature T0=0.01*iflag_phys 265 teta_glo(:,:)= 0.01*iflag_phys/(pk(:,:)/cpp) 266 ELSE 267 teta_glo(:,:)=tetarappel(:,:) 268 ENDIF 259 269 ! geopotential 260 270 CALL geopot(ip1jmp1,teta_glo,pk,pks,phis_glo,phi) … … 306 316 do l=1,llm 307 317 do ij=iip2,ip1jm 308 teta_glo(ij,l)=teta_glo(ij,l)*(1.+ 0.005*ran1(idum))318 teta_glo(ij,l)=teta_glo(ij,l)*(1.+tetanoise*ran1(idum)) 309 319 enddo 310 320 enddo
Note: See TracChangeset
for help on using the changeset viewer.