Changeset 10087 for vendors/AGRIF/CMEMS_2020/AGRIF_FILES/modbcfunction.F90
- Timestamp:
- 2018-09-05T15:33:44+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendors/AGRIF/CMEMS_2020/AGRIF_FILES/modbcfunction.F90
r5656 r10087 21 21 ! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 22 22 ! 23 !--------------------------------------------------------------------------------------------------- 23 24 !> Module Agrif_BcFunction. 24 ! 25 !! 26 !--------------------------------------------------------------------------------------------------- 25 27 module Agrif_BcFunction 26 28 ! 27 29 ! Modules used: 28 30 ! 29 use Agrif_Boundary 30 use Agrif_Update 31 use Agrif_Save 31 use Agrif_User_Variables 32 32 33 ! 33 34 implicit none 34 !35 interface Agrif_Set_Parent36 module procedure Agrif_Set_Parent_int, &37 Agrif_Set_Parent_real4, &38 Agrif_Set_Parent_real839 end interface40 35 ! 41 36 interface Agrif_Save_Forrestore … … 47 42 ! 48 43 contains 49 ! 50 !=================================================================================================== 51 ! subroutine Agrif_Set_parent_int 52 ! 53 !> To set the TYPE of the variable 54 !--------------------------------------------------------------------------------------------------- 55 subroutine Agrif_Set_parent_int(tabvarsindic,value) 56 !--------------------------------------------------------------------------------------------------- 57 integer, intent(in) :: tabvarsindic !< indice of the variable in tabvars 58 integer, intent(in) :: value !< input value 59 ! 60 Agrif_Curgrid % parent % tabvars_i(tabvarsindic) % iarray0 = value 61 !--------------------------------------------------------------------------------------------------- 62 end subroutine Agrif_Set_parent_int 63 !=================================================================================================== 64 ! 65 !=================================================================================================== 66 ! subroutine Agrif_Set_parent_real4 67 !--------------------------------------------------------------------------------------------------- 68 !> To set the TYPE of the variable 69 !--------------------------------------------------------------------------------------------------- 70 subroutine Agrif_Set_parent_real4 ( tabvarsindic, value ) 71 !--------------------------------------------------------------------------------------------------- 72 integer, intent(in) :: tabvarsindic !< indice of the variable in tabvars 73 real(kind=4),intent(in) :: value !< input value 74 ! 75 Agrif_Curgrid % parent % tabvars_r(tabvarsindic) % array0 = value 76 Agrif_Curgrid % parent % tabvars_r(tabvarsindic) % sarray0 = value 77 !--------------------------------------------------------------------------------------------------- 78 end subroutine Agrif_Set_parent_real4 79 !=================================================================================================== 80 ! 81 !=================================================================================================== 82 ! subroutine Agrif_Set_parent_real8 83 !--------------------------------------------------------------------------------------------------- 84 !> To set the TYPE of the variable 85 !--------------------------------------------------------------------------------------------------- 86 subroutine Agrif_Set_parent_real8 ( tabvarsindic, value ) 87 !--------------------------------------------------------------------------------------------------- 88 integer, intent(in) :: tabvarsindic !< indice of the variable in tabvars 89 real(kind=8),intent(in) :: value !< input value 90 ! 91 Agrif_Curgrid % parent % tabvars_r(tabvarsindic) % darray0 = value 92 !--------------------------------------------------------------------------------------------------- 93 end subroutine Agrif_Set_parent_real8 94 !=================================================================================================== 95 ! 96 !=================================================================================================== 97 ! subroutine Agrif_Set_bc 98 !--------------------------------------------------------------------------------------------------- 99 subroutine Agrif_Set_bc ( tabvarsindic, bcinfsup, Interpolationshouldbemade ) 100 !--------------------------------------------------------------------------------------------------- 101 integer, intent(in) :: tabvarsindic !< indice of the variable in tabvars 102 integer, dimension(2), intent(in) :: bcinfsup !< bcinfsup 103 logical, optional, intent(in) :: Interpolationshouldbemade !< interpolation should be made 104 ! 105 integer :: indic ! indice of the variable in tabvars 106 type(Agrif_Variable), pointer :: var 107 ! 108 indic = Agrif_Curgrid % tabvars_i(tabvarsindic) % iarray0 109 ! 110 if (indic <= 0) then 111 var => Agrif_Search_Variable(Agrif_Curgrid,-indic) 112 else 113 print*,"Agrif_Set_bc : warning indic >= 0 !!!" 114 var => Agrif_Curgrid % tabvars(indic) 115 endif 116 117 if (.not.associated(var)) return ! Grand mother grid case 118 ! 119 if ( Agrif_Curgrid % fixedrank /= 0 ) then 120 if ( .not.associated(var % oldvalues2D) ) then 121 allocate(var % oldvalues2D(2,1)) 122 var % interpIndex = -1 123 var % oldvalues2D = 0. 124 endif 125 if ( present(Interpolationshouldbemade) ) then 126 var % Interpolationshouldbemade = Interpolationshouldbemade 127 endif 128 endif 129 ! 130 var % bcinf = bcinfsup(1) 131 var % bcsup = bcinfsup(2) 132 !--------------------------------------------------------------------------------------------------- 133 end subroutine Agrif_Set_bc 134 !=================================================================================================== 135 ! 136 !=================================================================================================== 137 ! subroutine Agrif_Set_interp 138 !--------------------------------------------------------------------------------------------------- 139 subroutine Agrif_Set_interp ( tabvarsindic, interp, interp1, interp2, interp3 , interp4) 140 !--------------------------------------------------------------------------------------------------- 141 integer, intent(in) :: tabvarsindic !< indice of the variable in tabvars 142 integer, optional, intent(in) :: interp, interp1, interp2, interp3, interp4 143 ! 144 integer :: indic ! indice of the variable in tabvars 145 type(Agrif_Variable), pointer :: var 146 ! 147 indic = Agrif_Curgrid % tabvars_i(tabvarsindic) % iarray0 148 ! 149 if (indic <= 0) then 150 var => Agrif_Search_Variable(Agrif_Mygrid,-indic) 151 else 152 print*,"Agrif_Set_interp : warning indic >= 0 !!!" 153 var => Agrif_Mygrid % tabvars(indic) 154 endif 155 ! 156 var % type_interp = Agrif_Constant 157 ! 158 if (present(interp)) var % type_interp = interp 159 if (present(interp1)) var % type_interp(1) = interp1 160 if (present(interp2)) var % type_interp(2) = interp2 161 if (present(interp3)) var % type_interp(3) = interp3 162 if (present(interp4)) var % type_interp(4) = interp4 163 !--------------------------------------------------------------------------------------------------- 164 end subroutine Agrif_Set_interp 165 !=================================================================================================== 166 ! 167 !=================================================================================================== 168 ! subroutine Agrif_Set_bcinterp 169 !--------------------------------------------------------------------------------------------------- 170 subroutine Agrif_Set_bcinterp ( tabvarsindic, interp, interp1, interp2, interp3, interp4, & 171 interp11, interp12, interp21, interp22 ) 172 !--------------------------------------------------------------------------------------------------- 173 INTEGER, intent(in) :: tabvarsindic !< indice of the variable in tabvars 174 INTEGER, OPTIONAL, intent(in) :: interp, interp1, interp2, interp3, interp4 175 INTEGER, OPTIONAL, intent(in) :: interp11, interp12, interp21, interp22 176 ! 177 INTEGER :: indic ! indice of the variable in tabvars 178 TYPE(Agrif_Variable), pointer :: var 179 ! 44 45 !=================================================================================================== 46 ! subroutine Agrif_Set_restore 47 !> This subroutine is used to set the index of the current grid variable we want to restore. 48 !--------------------------------------------------------------------------------------------------- 49 subroutine Agrif_Set_restore ( tabvarsindic ) 50 !--------------------------------------------------------------------------------------------------- 51 INTEGER, intent(in) :: tabvarsindic !< indice of the variable in tabvars 52 ! 53 INTEGER :: indic ! indice of the variable in tabvars 54 ! 55 print *,'CURRENTLY BROKEN' 56 STOP 57 180 58 indic = Agrif_Curgrid%tabvars_i(tabvarsindic)%iarray0 181 59 ! 182 if (indic <= 0) then183 var => Agrif_Search_Variable(Agrif_Mygrid,-indic)184 else185 print*,"Agrif_Set_bcinterp : warning indic >= 0 !!!"186 var => Agrif_Mygrid % tabvars(indic)187 endif188 !189 var % type_interp_bc = Agrif_Constant190 !191 if (present(interp)) var % type_interp_bc = interp192 if (present(interp1)) var % type_interp_bc(:,1) = interp1193 if (present(interp11)) var % type_interp_bc(1,1) = interp11194 if (present(interp12)) var % type_interp_bc(1,2) = interp12195 if (present(interp2)) var % type_interp_bc(:,2) = interp2196 if (present(interp21)) var % type_interp_bc(2,1) = interp21197 if (present(interp22)) var % type_interp_bc(2,2) = interp22198 if (present(interp3)) var % type_interp_bc(:,3) = interp3199 if (present(interp4)) var % type_interp_bc(:,4) = interp4200 !---------------------------------------------------------------------------------------------------201 end subroutine Agrif_Set_bcinterp202 !===================================================================================================203 !204 !===================================================================================================205 ! subroutine Agrif_Set_UpdateType206 !---------------------------------------------------------------------------------------------------207 subroutine Agrif_Set_UpdateType ( tabvarsindic, update, update1, update2, &208 update3, update4, update5 )209 !---------------------------------------------------------------------------------------------------210 INTEGER, intent(in) :: tabvarsindic !< indice of the variable in tabvars211 INTEGER, OPTIONAL, intent(in) :: update, update1, update2, update3, update4, update5212 !213 INTEGER :: indic ! indice of the variable in tabvars214 type(Agrif_Variable), pointer :: root_var215 !216 indic = Agrif_Curgrid%tabvars_i(tabvarsindic)%iarray0217 !218 if (indic <= 0) then219 root_var => Agrif_Search_Variable(Agrif_Mygrid,-indic)220 else221 print*,"Agrif_Set_UpdateType : warning indic >= 0 !!!"222 root_var => Agrif_Mygrid % tabvars(indic)223 endif224 !225 root_var % type_update = Agrif_Update_Copy226 if (present(update)) root_var % type_update = update227 if (present(update1)) root_var % type_update(1) = update1228 if (present(update2)) root_var % type_update(2) = update2229 if (present(update3)) root_var % type_update(3) = update3230 if (present(update4)) root_var % type_update(4) = update4231 if (present(update5)) root_var % type_update(5) = update5232 !---------------------------------------------------------------------------------------------------233 end subroutine Agrif_Set_UpdateType234 !===================================================================================================235 !236 !===================================================================================================237 ! subroutine Agrif_Set_restore238 !---------------------------------------------------------------------------------------------------239 subroutine Agrif_Set_restore ( tabvarsindic )240 !---------------------------------------------------------------------------------------------------241 INTEGER, intent(in) :: tabvarsindic !< indice of the variable in tabvars242 !243 INTEGER :: indic ! indice of the variable in tabvars244 !245 indic = Agrif_Curgrid%tabvars_i(tabvarsindic)%iarray0246 !247 60 Agrif_Mygrid%tabvars(indic) % restore = .TRUE. 248 61 !--------------------------------------------------------------------------------------------------- … … 251 64 ! 252 65 !=================================================================================================== 253 ! subroutine Agrif_Init_variable254 !---------------------------------------------------------------------------------------------------255 subroutine Agrif_Init_variable ( tabvarsindic, procname )256 !---------------------------------------------------------------------------------------------------257 INTEGER, intent(in) :: tabvarsindic !< indice of the variable in tabvars258 procedure() :: procname !< Data recovery procedure259 !260 if ( Agrif_Curgrid%level <= 0 ) return261 !262 call Agrif_Interp_variable(tabvarsindic, procname)263 call Agrif_Bc_variable(tabvarsindic, procname, 1.)264 !---------------------------------------------------------------------------------------------------265 end subroutine Agrif_Init_variable266 !===================================================================================================267 !268 !===================================================================================================269 ! subroutine Agrif_Bc_variable270 !---------------------------------------------------------------------------------------------------271 subroutine Agrif_Bc_variable ( tabvarsindic, procname, calledweight )272 !---------------------------------------------------------------------------------------------------273 integer, intent(in) :: tabvarsindic !< indice of the variable in tabvars274 procedure() :: procname275 real, optional, intent(in) :: calledweight276 !277 real :: weight278 logical :: pweight279 integer :: indic280 integer :: nbdim281 type(Agrif_Variable), pointer :: root_var282 type(Agrif_Variable), pointer :: parent_var283 type(Agrif_Variable), pointer :: child_var284 type(Agrif_Variable), pointer :: child_tmp ! Temporary variable on the child grid285 !286 if ( Agrif_Curgrid%level <= 0 ) return287 !288 indic = Agrif_Curgrid%tabvars_i(tabvarsindic)%iarray0289 !290 if ( present(calledweight) ) then291 weight = calledweight292 pweight = .true.293 else294 weight = 0.295 pweight = .false.296 endif297 !298 if (indic <= 0) then299 child_var => Agrif_Search_Variable(Agrif_Curgrid,-indic)300 parent_var => child_var % parent_var301 root_var => child_var % root_var302 else303 print*,"Agrif_Bc_variable : warning indic >= 0 !!!"304 child_var => Agrif_Curgrid % tabvars(indic)305 parent_var => Agrif_Curgrid % parent % tabvars(indic)306 root_var => Agrif_Mygrid % tabvars(indic)307 endif308 !309 nbdim = root_var % nbdim310 !311 select case( nbdim )312 case(1)313 allocate(parray1(child_var%lb(1):child_var%ub(1)))314 case(2)315 allocate(parray2(child_var%lb(1):child_var%ub(1), &316 child_var%lb(2):child_var%ub(2) ))317 case(3)318 allocate(parray3(child_var%lb(1):child_var%ub(1), &319 child_var%lb(2):child_var%ub(2), &320 child_var%lb(3):child_var%ub(3) ))321 case(4)322 allocate(parray4(child_var%lb(1):child_var%ub(1), &323 child_var%lb(2):child_var%ub(2), &324 child_var%lb(3):child_var%ub(3), &325 child_var%lb(4):child_var%ub(4) ))326 case(5)327 allocate(parray5(child_var%lb(1):child_var%ub(1), &328 child_var%lb(2):child_var%ub(2), &329 child_var%lb(3):child_var%ub(3), &330 child_var%lb(4):child_var%ub(4), &331 child_var%lb(5):child_var%ub(5) ))332 case(6)333 allocate(parray6(child_var%lb(1):child_var%ub(1), &334 child_var%lb(2):child_var%ub(2), &335 child_var%lb(3):child_var%ub(3), &336 child_var%lb(4):child_var%ub(4), &337 child_var%lb(5):child_var%ub(5), &338 child_var%lb(6):child_var%ub(6) ))339 end select340 !341 ! Create temporary child variable342 allocate(child_tmp)343 !344 child_tmp % root_var => root_var345 child_tmp % oldvalues2D => child_var % oldvalues2D346 !347 ! Index indicating if a space interpolation is necessary348 child_tmp % interpIndex = child_var % interpIndex349 child_tmp % list_interp => child_var % list_interp350 child_tmp % Interpolationshouldbemade = child_var % Interpolationshouldbemade351 !352 child_tmp % point = child_var % point353 child_tmp % lb = child_var % lb354 child_tmp % ub = child_var % ub355 !356 child_tmp % bcinf = child_var % bcinf357 child_tmp % bcsup = child_var % bcsup358 !359 child_tmp % childarray = child_var % childarray360 child_tmp % memberin = child_var % memberin361 !362 call Agrif_CorrectVariable(parent_var, child_tmp, pweight, weight, procname)363 !364 child_var % childarray = child_tmp % childarray365 child_var % memberin = child_tmp % memberin366 !367 child_var % oldvalues2D => child_tmp % oldvalues2D368 child_var % list_interp => child_tmp % list_interp369 !370 child_var % interpIndex = child_tmp % interpIndex371 !372 deallocate(child_tmp)373 !374 select case( nbdim )375 case(1); deallocate(parray1)376 case(2); deallocate(parray2)377 case(3); deallocate(parray3)378 case(4); deallocate(parray4)379 case(5); deallocate(parray5)380 case(6); deallocate(parray6)381 end select382 !---------------------------------------------------------------------------------------------------383 end subroutine Agrif_Bc_variable384 !===================================================================================================385 !386 !===================================================================================================387 ! subroutine Agrif_Interp_variable388 !---------------------------------------------------------------------------------------------------389 subroutine Agrif_Interp_variable ( tabvarsindic, procname )390 !---------------------------------------------------------------------------------------------------391 integer, intent(in) :: tabvarsindic !< indice of the variable in tabvars392 procedure() :: procname !< Data recovery procedure393 !394 integer :: nbdim395 integer :: indic ! indice of the variable in tabvars396 logical :: torestore397 type(Agrif_Variable), pointer :: root_var398 type(Agrif_Variable), pointer :: parent_var ! Variable on the parent grid399 type(Agrif_Variable), pointer :: child_var ! Variable on the parent grid400 type(Agrif_Variable), pointer :: child_tmp ! Temporary variable on the child grid401 !402 if ( Agrif_Curgrid%level <= 0 ) return403 !404 indic = Agrif_Curgrid%tabvars_i(tabvarsindic)%iarray0405 !406 if (indic <= 0) then407 child_var => Agrif_Search_Variable(Agrif_Curgrid,-indic)408 parent_var => child_var % parent_var409 root_var => child_var % root_var410 else411 print*,"Agrif_Interp_variable : warning indic >= 0 !!!"412 child_var => Agrif_Curgrid % tabvars(indic)413 parent_var => Agrif_Curgrid % parent % tabvars(indic)414 root_var => Agrif_Mygrid % tabvars(indic)415 endif416 !417 nbdim = root_var % nbdim418 torestore = root_var % restore419 !420 allocate(child_tmp)421 !422 child_tmp % root_var => root_var423 child_tmp % nbdim = root_var % nbdim424 child_tmp % point = child_var % point425 child_tmp % lb = child_var % lb426 child_tmp % ub = child_var % ub427 child_tmp % interpIndex = child_var % interpIndex428 child_tmp % list_interp => child_var % list_interp429 child_tmp % Interpolationshouldbemade = child_var % Interpolationshouldbemade430 !431 if ( torestore ) then432 select case( nbdim )433 case(1)434 parray1 = child_var % array1435 child_tmp % restore1D => child_var % restore1D436 case(2)437 parray2 = child_var % array2438 child_tmp % restore2D => child_var % restore2D439 case(3)440 parray3 = child_var % array3441 child_tmp % restore3D => child_var % restore3D442 case(4)443 parray4 = child_var % array4444 child_tmp % restore4D => child_var % restore4D445 case(5)446 parray5 = child_var % array5447 child_tmp % restore5D => child_var % restore5D448 case(6)449 parray6 = child_var % array6450 child_tmp % restore6D => child_var % restore6D451 end select452 endif453 !454 call Agrif_InterpVariable(parent_var, child_tmp, torestore, procname)455 !456 child_var % list_interp => child_tmp % list_interp457 !458 deallocate(child_tmp)459 !---------------------------------------------------------------------------------------------------460 end subroutine Agrif_Interp_variable461 !===================================================================================================462 !463 !===================================================================================================464 ! subroutine Agrif_Update_Variable465 !---------------------------------------------------------------------------------------------------466 subroutine Agrif_Update_Variable ( tabvarsindic, procname, &467 locupdate, locupdate1, locupdate2, locupdate3, locupdate4 )468 !---------------------------------------------------------------------------------------------------469 integer, intent(in) :: tabvarsindic !< Indice of the variable in tabvars470 procedure() :: procname !< Data recovery procedure471 integer, dimension(2), intent(in), optional :: locupdate472 integer, dimension(2), intent(in), optional :: locupdate1473 integer, dimension(2), intent(in), optional :: locupdate2474 integer, dimension(2), intent(in), optional :: locupdate3475 integer, dimension(2), intent(in), optional :: locupdate4476 !---------------------------------------------------------------------------------------------------477 integer :: indic478 integer :: nbdim479 integer, dimension(6) :: updateinf ! First positions where interpolations are calculated480 integer, dimension(6) :: updatesup ! Last positions where interpolations are calculated481 type(Agrif_Variable), pointer :: root_var482 type(Agrif_Variable), pointer :: parent_var483 type(Agrif_Variable), pointer :: child_var484 !485 if ( Agrif_Root() .AND. (.not.agrif_coarse) ) return486 if (agrif_curgrid%grand_mother_grid) return487 !488 indic = Agrif_Curgrid%tabvars_i(tabvarsindic)%iarray0489 !490 if (indic <= 0) then491 child_var => Agrif_Search_Variable(Agrif_Curgrid, -indic)492 parent_var => child_var % parent_var493 494 if (.not.associated(parent_var)) then495 ! can occur during the first update of Agrif_Coarsegrid (if any)496 parent_var => Agrif_Search_Variable(Agrif_Curgrid % parent, -indic)497 child_var % parent_var => parent_var498 endif499 500 root_var => child_var % root_var501 else502 print*,"Agrif_Update_Variable : warning indic >= 0 !!!"503 root_var => Agrif_Mygrid % tabvars(indic)504 child_var => Agrif_Curgrid % tabvars(indic)505 parent_var => Agrif_Curgrid % parent % tabvars(indic)506 endif507 !508 nbdim = root_var % nbdim509 !510 updateinf = -99511 updatesup = -99512 !513 if ( present(locupdate) ) then514 updateinf(1:nbdim) = locupdate(1)515 updatesup(1:nbdim) = locupdate(2)516 endif517 !518 if ( present(locupdate1) ) then519 updateinf(1) = locupdate1(1)520 updatesup(1) = locupdate1(2)521 endif522 !523 if ( present(locupdate2) ) then524 updateinf(2) = locupdate2(1)525 updatesup(2) = locupdate2(2)526 endif527 528 if ( present(locupdate3) ) then529 updateinf(3) = locupdate3(1)530 updatesup(3) = locupdate3(2)531 endif532 533 if ( present(locupdate4) ) then534 updateinf(4) = locupdate4(1)535 updatesup(4) = locupdate4(2)536 endif537 !538 call Agrif_UpdateVariable( parent_var, child_var, updateinf, updatesup, procname )539 !---------------------------------------------------------------------------------------------------540 end subroutine Agrif_Update_Variable541 !===================================================================================================542 !543 !===================================================================================================544 66 ! subroutine Agrif_Save_ForRestore0D 545 67 !--------------------------------------------------------------------------------------------------- 546 68 subroutine Agrif_Save_ForRestore0D ( tabvarsindic0, tabvarsindic ) 547 69 !--------------------------------------------------------------------------------------------------- 548 integer, intent(in) :: tabvarsindic0, tabvarsindic 70 integer, intent(in) :: tabvarsindic0 !< index of the current grid variable 71 integer, intent(in) :: tabvarsindic !< index of the varible which should be restored 72 549 73 ! 550 74 type(Agrif_Variable), pointer :: root_var, save_var 551 75 integer :: nbdim 552 76 ! 77 print *,'CURRENTLY BROKEN' 78 STOP 553 79 root_var => Agrif_Mygrid % tabvars(tabvarsindic0) 554 80 save_var => Agrif_Curgrid % tabvars(tabvarsindic0) … … 566 92 !=================================================================================================== 567 93 ! subroutine Agrif_Save_ForRestore2D 94 !> This function is used to restore a current grid variable (with the index tabvarsindic) to the input 2D-variable. 568 95 !--------------------------------------------------------------------------------------------------- 569 96 subroutine Agrif_Save_ForRestore2D ( q, tabvarsindic ) 570 97 !--------------------------------------------------------------------------------------------------- 571 real, dimension(:,:), intent(in) :: q 572 integer, intent(in) :: tabvarsindic 98 ! 99 real, dimension(:,:), intent(in) :: q !< input 2D-variable which should be saved 100 integer, intent(in) :: tabvarsindic !< index of the current grid variable we want to restore 573 101 ! 574 102 type(Agrif_Variable), pointer :: root_var, save_var 575 103 integer :: indic 576 104 ! 105 print *,'CURRENTLY BROKEN' 106 STOP 577 107 indic = tabvarsindic 578 108 if (tabvarsindic >= 0) then … … 603 133 !=================================================================================================== 604 134 ! subroutine Agrif_Save_ForRestore3D 135 !> This function is used to restore a current grid variable (with the index tabvarsindic) to the input 3D-variable. 605 136 !--------------------------------------------------------------------------------------------------- 606 137 subroutine Agrif_Save_ForRestore3D ( q, tabvarsindic ) 607 138 !--------------------------------------------------------------------------------------------------- 608 real, dimension(:,:,:), intent(in) :: q 609 integer, intent(in) :: tabvarsindic 139 ! 140 real, dimension(:,:,:), intent(in) :: q !< input 3D-variable which should be saved 141 integer, intent(in) :: tabvarsindic !< index of the current grid variable we want to restore 610 142 ! 611 143 type(Agrif_Variable), pointer :: root_var, save_var 612 144 integer :: indic 613 145 ! 146 print *,'CURRENTLY BROKEN' 147 STOP 148 614 149 indic = tabvarsindic 615 150 if (tabvarsindic >= 0) then … … 641 176 !=================================================================================================== 642 177 ! subroutine Agrif_Save_ForRestore4D 178 !> This function is used to restore a current grid variable (with the index tabvarsindic) to the input 4D-variable. 643 179 !--------------------------------------------------------------------------------------------------- 644 180 subroutine Agrif_Save_ForRestore4D ( q, tabvarsindic ) 645 181 !--------------------------------------------------------------------------------------------------- 646 real, dimension(:,:,:,:), intent(in) :: q 647 integer, intent(in) :: tabvarsindic 182 ! 183 real, dimension(:,:,:,:), intent(in) :: q !< input 4D-variable which should be saved 184 integer, intent(in) :: tabvarsindic !< index of the current grid variable we want to restore 185 ! 648 186 ! 649 187 type(Agrif_Variable), pointer :: root_var, save_var 650 188 integer :: indic 651 189 ! 190 print *,'CURRENTLY BROKEN' 191 STOP 652 192 indic = tabvarsindic 653 193 if (tabvarsindic >= 0) then
Note: See TracChangeset
for help on using the changeset viewer.