Changeset 126
- Timestamp:
- 07/11/17 18:36:38 (7 years ago)
- Location:
- branches/iLoveclim
- Files:
-
- 2 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/iLoveclim/SOURCES/3D-physique-gen_mod.f90
r123 r126 253 253 !hassine 254 254 real, dimension(nx,ny) :: beta_centre !< beta on major node (average) 255 real (kind = 8),dimension(nx,ny) :: calvingGRIS256 real (kind = 8),dimension(nx,ny),target :: calvin_GRIS ! calving flux[m3/s] given to CLIO255 !afq for CONSEAU real (kind = 8),dimension(nx,ny) :: calvingGRIS 256 !afq for CONSEAU real (kind = 8),dimension(nx,ny),target :: calvin_GRIS ! calving flux[m3/s] given to CLIO 257 257 real (kind = 8),dimension(nx,ny,20),target :: bmshelfCLIO ! basal melting given by CLIO 258 258 real, dimension(nx,ny) :: coef_drag !< coefficient de la loi de friction non lineaire : depend de la valeur de alpha_drag … … 330 330 real,dimension(nx,ny) :: NEFFMX !< pression effective '>' 331 331 real,dimension(nx,ny) :: NEFFMY !< pression effective '^' 332 real(kind=8),dimension(nx,ny),target :: RUNOF_OC ! Continental runoff (grounded part)333 real(kind=8),dimension(nx,ny),target :: BMELT_OC ! Shelf runoff (floating part)332 !afq for CONSEAU real(kind=8),dimension(nx,ny),target :: RUNOF_OC ! Continental runoff (grounded part) 333 !afq for CONSEAU real(kind=8),dimension(nx,ny),target :: BMELT_OC ! Shelf runoff (floating part) 334 334 real,dimension(nx,ny) :: TOBMX !< cisaillement basal '>' 335 335 real,dimension(nx,ny) :: TOBMY !< cisaillement basal '^' … … 410 410 real,dimension(nx,ny) :: slid_my !< geographiques eventuelles dans le glissement 411 411 412 ! afq -- iLOVECLIM coupling -- water conservation 413 real (kind = 8),target :: trendWAC ! the global trend in ice volume 414 real (kind = 8),dimension(nx,ny),target :: smbWAC ! smb+ablbord 415 real (kind = 8),dimension(nx,ny),target :: bmeltWAC ! bmelt 416 real (kind = 8),dimension(nx,ny),target :: calvingWAC ! calving 412 417 413 418 -
branches/iLoveclim/SOURCES/Hemin40_files/output_hemin40_mod.f90
r123 r126 28 28 !real :: pdfmean ! moyenne PDF 29 29 logical,dimension(nx,ny,13) :: mask_cal ! masque regions calotte 30 REAL, dimension(nx,ny) :: old_H_dtt ! Epaisseur de glace au pas de temps precedent30 ! afq for CONSEAU REAL, dimension(nx,ny) :: old_H_dtt ! Epaisseur de glace au pas de temps precedent 31 31 integer, dimension(nx,ny) :: write_mask 32 32 … … 39 39 mask_cal(:,:,:)=.false. 40 40 mask_cal(:,:,1)=.true. 41 old_H_dtt(:,:)=H(:,:) ! afq missing in mab?41 ! afq for CONSEAU old_H_dtt(:,:)=H(:,:) ! afq missing in mab? 42 42 ! calcul d'un masque pour les regions des calottes 43 43 do j=1,ny … … 182 182 ! REAL ABLA(NX,NY) 183 183 REAL DELTAVOL 184 REAL, dimension(nx,ny) :: delta_H_dtt184 ! afq for CONSEAU REAL, dimension(nx,ny) :: delta_H_dtt 185 185 186 186 … … 198 198 BDOTMEAN=0. 199 199 200 runof_oc(:,:) = 0.201 bmelt_oc(:,:) = 0.202 delta_H_dtt(:,:) = 0.200 ! afq for CONSEAU runof_oc(:,:) = 0. 201 ! afq for CONSEAU bmelt_oc(:,:) = 0. 202 ! afq for CONSEAU delta_H_dtt(:,:) = 0. 203 203 204 204 DO kk = 1,13 … … 239 239 enddo 240 240 241 ! afq -- thickness variation242 delta_H_dtt(:,:) = old_H_dtt(:,:) - H(:,:)243 ! afq -- continental runoff244 ! this goes to ECBilt, will be sum up, then routed to CLIO245 ! where (mask_cal(:,:,1).and.((H(:,:).gt.1.).or.(old_H_dtt(:,:).gt.1.)).and..not.flot(:,:))246 ! afq I think we do not need the H condition:247 where (mask_cal(:,:,1).and..not.flot(:,:))248 runof_oc(:,:) = runof_oc(:,:) + DBLE(delta_H_dtt(:,:))*DX*DY249 endwhere250 ! afq -- shelf runoff251 ! this goes to bilinear interpolation, then put to CLIO252 ! we have to make sure that we are not considering a "calved" point253 where (mask_cal(:,:,1).and.(H(:,:).gt.1.).and.flot(:,:).and.(calv(:,:).eq.0.))254 bmelt_oc(:,:) = bmelt_oc(:,:) + DBLE(delta_H_dtt(:,:))*DX*DY255 endwhere256 257 ! afq -- old_h_dtt has to be reset258 old_H_dtt(:,:) = H(:,:)259 260 ! afq -- the accumulated calving need to be reset, BUT not here because of coupling freq.261 calvin_GRIS(:,:) = calvin_GRIS(:,:)+calvingGRIS(:,:)262 241 ! afq for CONSEAU! afq -- thickness variation 242 ! afq for CONSEAU delta_H_dtt(:,:) = old_H_dtt(:,:) - H(:,:) 243 ! afq for CONSEAU! afq -- continental runoff 244 ! afq for CONSEAU! this goes to ECBilt, will be sum up, then routed to CLIO 245 ! afq for CONSEAU! where (mask_cal(:,:,1).and.((H(:,:).gt.1.).or.(old_H_dtt(:,:).gt.1.)).and..not.flot(:,:)) 246 ! afq for CONSEAU! afq I think we do not need the H condition: 247 ! afq for CONSEAU where (mask_cal(:,:,1).and..not.flot(:,:)) 248 ! afq for CONSEAU runof_oc(:,:) = runof_oc(:,:) + DBLE(delta_H_dtt(:,:))*DX*DY 249 ! afq for CONSEAU endwhere 250 ! afq for CONSEAU! afq -- shelf runoff 251 ! afq for CONSEAU! this goes to bilinear interpolation, then put to CLIO 252 ! afq for CONSEAU! we have to make sure that we are not considering a "calved" point 253 ! afq for CONSEAU where (mask_cal(:,:,1).and.(H(:,:).gt.1.).and.flot(:,:).and.(calv(:,:).eq.0.)) 254 ! afq for CONSEAU bmelt_oc(:,:) = bmelt_oc(:,:) + DBLE(delta_H_dtt(:,:))*DX*DY 255 ! afq for CONSEAU endwhere 256 257 ! afq for CONSEAU! afq -- old_h_dtt has to be reset 258 ! afq for CONSEAU old_H_dtt(:,:) = H(:,:) 259 260 ! afq for CONSEAU ! afq -- the accumulated calving need to be reset, BUT not here because of coupling freq. 261 ! afq for CONSEAU calvin_GRIS(:,:) = calvin_GRIS(:,:)+calvingGRIS(:,:) 262 ! afq for CONSEAU calvingGRIS(:,:) = 0. 263 263 264 264 … … 329 329 BDOTMEAN=BDOTMEAN/NX/NY 330 330 331 ! afq -- iLOVECLIM water conservation: 332 trendWAC = diff_H*dx*dy !or water_bilan 333 smbWAC(:,:) = (ablbord_dtt(:,:)+ Bm_dtt(:,:))*dx*dy/dtt 334 bmeltWAC(:,:) = Bmelt_dtt(:,:)*dx*dy/dtt 335 calvingWAC(:,:) = Calv_dtt(:,:)*dx*dy/dtt 336 !check-> 337 if (abs(1-diff_H/(water_bilan+1e-20)).gt.0.01) then 338 write(*,*) "Water is not conserved in GRISLI", diff_H, water_bilan, abs(1-diff_H/(water_bilan+1e-20)) 339 endif 340 331 341 ! 2_writing outputs 332 342 !------------------ -
branches/iLoveclim/SOURCES/bilan_eau_mod.f90
r123 r126 47 47 bm_dt(:,:)=0. 48 48 bmelt_dt(:,:)=0. 49 ! iLOVECLIM initialisation of water conservation related variables 50 trendWAC=0. 51 smbWAC(:,:)=0. 52 bmeltWAC(:,:)=0. 53 calvingWAC(:,:)=0. 49 54 end subroutine init_bilan_eau 50 55 -
branches/iLoveclim/SOURCES/calving_frange.f90
r123 r126 47 47 48 48 mass_total = 0d0 49 calvingGRIS=0d049 !afq for CONSEAU calvingGRIS=0d0 50 50 calv(:,:)=0. 51 51 calv_dtt(:,:)=0. … … 116 116 subroutine calving 117 117 118 real :: calvtest118 !afq for CONSEAU real :: calvtest 119 119 120 120 ! initialisation calving 121 121 calv(:,:)=0. 122 122 mass_total=0d0 123 calvtest=0.123 !afq for CONSEAU calvtest=0. 124 124 mass_total=0d0 125 125 … … 483 483 !if(h(i,j).gt.1) then 484 484 calv(i,j)=-h(i,j) 485 ! mab: copy the calving in the right format for coupling486 ! calvin_GRIS = volume flux per year (m3/a)487 calvingGRIS(i,j)=calvingGRIS(i,j)+(-calv(i,j)*dx*dy)485 !afq for CONSEAU ! mab: copy the calving in the right format for coupling 486 !afq for CONSEAU ! calvin_GRIS = volume flux per year (m3/a) 487 !afq for CONSEAU calvingGRIS(i,j)=calvingGRIS(i,j)+(-calv(i,j)*dx*dy) 488 488 !cdc H(i,j)=1. 489 489 !cdc 1m H(i,j)=min(1.,max(0.,(sealevel - Bsoc(i,j))*row/ro-0.01)) … … 500 500 end do 501 501 502 calvtest=sum(-calv(:,:)*dx*dy)503 mass_total=sum(calvingGRIS(:,:))504 505 calvtest = 0.502 !afq for CONSEAU calvtest=sum(-calv(:,:)*dx*dy) 503 !afq for CONSEAU mass_total=sum(calvingGRIS(:,:)) 504 505 !afq for CONSEAU calvtest = 0. 506 506 507 507 ! on met en calving les points detectes iceberg : -
branches/iLoveclim/SOURCES/main3D-0.4-40km.f90
r123 r126 132 132 PRINT*,'TIME = ',TIME,' TEND = ',TEND 133 133 134 !afq -- reset the GRISLI fluxes to CLIO:135 calvin_GRIS(:,:) = 0.136 runof_oc(:,:) = 0.137 bmelt_oc(:,:) = 0.134 !afq for CONSEAU!afq -- reset the GRISLI fluxes to CLIO: 135 !afq for CONSEAU calvin_GRIS(:,:) = 0. 136 !afq for CONSEAU runof_oc(:,:) = 0. 137 !afq for CONSEAU bmelt_oc(:,:) = 0. 138 138 139 139 time_loop: DO WHILE (time.LT.tend) !____________________________ debut boucle temporelle … … 145 145 !afq -- reset the CLIO fluxes to GRISLI: 146 146 bmshelfCLIO(:,:,:) = 0d0 147 !afq -- put the right units for GRISLI fluxes to CLIO:148 calvin_GRIS(:,:) = calvin_GRIS(:,:)/timCplGRISyr149 runof_oc(:,:) = runof_oc(:,:)/timCplGRISyr150 bmelt_oc(:,:) = bmelt_oc(:,:)/timCplGRISyr147 !afq for CONSEAU!afq -- put the right units for GRISLI fluxes to CLIO: 148 !afq for CONSEAU calvin_GRIS(:,:) = calvin_GRIS(:,:)/timCplGRISyr 149 !afq for CONSEAU runof_oc(:,:) = runof_oc(:,:)/timCplGRISyr 150 !afq for CONSEAU bmelt_oc(:,:) = bmelt_oc(:,:)/timCplGRISyr 151 151 152 152 if (itracebug.eq.1) call tracebug('dans main avant call out_recovery ')
Note: See TracChangeset
for help on using the changeset viewer.