- Timestamp:
- 03/15/18 14:18:24 (6 years ago)
- Location:
- branches/iLoveclim
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/iLoveclim
- Property svn:mergeinfo changed
/trunk merged: 148,150,152-185
- Property svn:mergeinfo changed
-
branches/iLoveclim/SOURCES/GrIce2sea_files/climat_GrIce2sea_years_perturb_mod.f90
r88 r187 62 62 real,dimension(:),allocatable :: tpert !> temperature for climate forcing 63 63 real,dimension(:),allocatable :: spert !> sea surface perturbation 64 real,dimension(:),allocatable :: bpert !> basal melt index perturbation 64 65 real :: coefT !> pour modifier l'amplitude de la perturb. T 65 character(len=1 20) :: filforc !> nom du fichier forcage66 character(len=150) :: filforc !> nom du fichier forcage 66 67 integer :: pertsmb !> boolean: do we modify the smb? 67 68 real :: rapsmb !> if we modify the smb this is the equivalent of rappact 69 integer :: pertbmb !> boolean: do we modify the bmelt under ice shelves? 70 real :: coefbmb !> if we modify the bmelt, we read a perturbation (based on dD, insolation, etc.) and apply this coefficient 68 71 69 72 … … 99 102 !aurel for Tafor: 100 103 character(len=8) :: control !label to check clim. forc. file (filin) is usable 101 character(len= 80):: filin104 character(len=100):: filin 102 105 103 106 namelist/clim_smb_T_gen/smb_file,coef_smb_unit,temp_annual_file … … 129 132 ! bm(:,:) = bm(:,:) - 5. ! pour faire un masque a l'exterieur du Groenland actuel 130 133 !end where 131 where ((H(:,:).lt.1.).and.(Bsoc(:,:).gt.0.).and.(bm(:,:).gt.0.))132 bm(:,:) = -0.1133 end where134 !where ((H(:,:).lt.1.).and.(Bsoc(:,:).gt.0.).and.(bm(:,:).gt.0.)) 135 ! bm(:,:) = -0.1 136 !end where 134 137 !cdc test debug Hemin15 et Greeneem15 135 138 ! where (bm(:,:).lt.-1000) bm(:,:)=0. … … 278 281 end if 279 282 283 if (.not.allocated(bpert)) then 284 allocate(bpert(nft),stat=err) 285 if (err/=0) then 286 print *,"erreur a l'allocation du tableau Bpert",err 287 stop 4 288 end if 289 end if 290 280 291 do i=1,nft 281 read(num_forc,*) tdate(i),spert(i),tpert(i) 292 if (pertbmb==1) then 293 read(num_forc,*) tdate(i),spert(i),tpert(i),bpert(i) 294 else 295 read(num_forc,*) tdate(i),spert(i),tpert(i) 296 bpert(i)=0. 297 endif 282 298 end do 283 299 close(num_forc) 284 300 285 301 tpert(:)=tpert(:)*coefT 286 302 bpert(:)=max(1.+bpert(:)*coefbmb,0.01) !freezing is not allowed 287 303 288 304 … … 325 341 implicit none 326 342 namelist/lapse_rates/T_lapse_rate 327 namelist/clim_pert_massb/coefT,filforc,pertsmb,rapsmb 343 namelist/clim_pert_massb/coefT,filforc,pertsmb,rapsmb,pertbmb,coefbmb 328 344 329 345 rewind(num_param) ! pour revenir au debut du fichier param_list.dat … … 353 369 write(num_rep_42,*) 'pertsmb = ', pertsmb 354 370 write(num_rep_42,*) 'rapsmb = ', rapsmb 371 write(num_rep_42,*) 'pertbmb = ', pertbmb 372 write(num_rep_42,*) 'coefbmb = ', coefbmb 355 373 write(num_rep_42,*)'/' 356 374 write(num_rep_42,*) … … 388 406 tafor=tpert(1) 389 407 sealevel=spert(1) 408 coefbmshelf=bpert(1) 390 409 ift=1 391 410 … … 393 412 tafor=tpert(nft) 394 413 sealevel=spert(nft) 414 coefbmshelf=bpert(nft) 395 415 ift=nft 396 416 … … 402 422 sealevel=spert(i)+(spert(i+1)-spert(i))* & 403 423 (time-tdate(i))/(tdate(i+1)-tdate(i)) 424 coefbmshelf=bpert(i)+(bpert(i+1)-bpert(i))* & 425 (time-tdate(i))/(tdate(i+1)-tdate(i)) 404 426 ift=i 405 427 goto 100 … … 409 431 100 continue 410 432 411 412 433 Tann (:,:) = Ta0 (:,:) + T_lapse_rate * (S(:,:)-S0(:,:)) +Tafor 413 434 Ts(:,:) = Tann(:,:) … … 420 441 end if 421 442 end if 443 444 !afq -- as in Pollard and Deconto, melt is more efficient at high temperature... -> 445 if (coefbmshelf.gt.1.) then 446 coefbmshelf = 1. + ( coefbmshelf - 1. ) * 1.5 !afq.... tuning for the degla?... 447 end if 422 448 423 ! coefmshelf est un coefficient qui fait varier bmgrz et bmshelf en fonction de tafor424 coefbmshelf=(1.+tafor/10.) ! coefbmshelf=0 pour tafor=-10deg425 coefbmshelf=max(coefbmshelf,0.)426 coefbmshelf=min(coefbmshelf,2.)449 !afq --old: ! coefmshelf est un coefficient qui fait varier bmgrz et bmshelf en fonction de tafor 450 !afq --old: coefbmshelf=(1.+tafor/10.) ! coefbmshelf=0 pour tafor=-10deg 451 !afq --old: coefbmshelf=max(coefbmshelf,0.) 452 !afq --old: coefbmshelf=min(coefbmshelf,2.) 427 453 428 454 ! coefbmshelf=1. !afq for calibration Greenland … … 441 467 implicit none 442 468 integer :: k_snap ! pour calculer les indices de temps 443 real :: time_bis ! pour repliquer les dernieres annees444 469 integer :: k 445 470
Note: See TracChangeset
for help on using the changeset viewer.