Changeset 10384 for utils/tools/NESTING
- Timestamp:
- 2018-12-12T20:06:29+01:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
utils/tools/NESTING/src/agrif_create_restart.f90
r10381 r10384 17 17 USE agrif_interpolation 18 18 USE agrif_partial_steps 19 USE agrif_connect_topo 19 20 ! 20 21 IMPLICIT NONE … … 38 39 CHARACTER*20 :: vert_coord_name 39 40 CHARACTER*1 :: posvar 40 CHARACTER*100 :: Child_file,Childcoordinates,varname,Child bathy,Childbathymeter41 CHARACTER*100 :: Child_file,Childcoordinates,varname,Child_Bathy_Level,Child_Bathy_Meter 41 42 REAL*8, POINTER, DIMENSION(:,:) :: lonChild,latChild => NULL() 42 43 REAL*8, POINTER, DIMENSION(:,:) :: lonParent,latParent => NULL() … … 72 73 CHARACTER(len=20) :: timedimname 73 74 75 LOGICAL, PARAMETER :: conservation = .FALSE. 74 76 ! 75 77 ! Variables for dimg … … 100 102 101 103 IF (iom_activated) THEN 102 timedimname = 't '104 timedimname = 'time_counter' 103 105 ELSE 104 106 timedimname='time' … … 113 115 ! 114 116 CALL set_child_name(parent_coordinate_file,Childcoordinates) 115 CALL set_child_name(parent_bathy_level,Childbathy)116 CALL set_child_name(parent_bathy_meter,Childbathymeter)117 IF( TRIM(parent_bathy_level) /= '' ) CALL set_child_name(parent_bathy_level,Child_Bathy_Level) 118 IF( TRIM(parent_bathy_meter) /= '' ) CALL set_child_name(parent_bathy_meter,Child_Bathy_Meter) 117 119 ! 118 120 ! create this file … … 131 133 CALL Read_Ncdf_dim('x',restart_file,x) 132 134 CALL Read_Ncdf_dim('y',restart_file,y) 133 CALL Read_Ncdf_dim(' z',restart_file,z)135 CALL Read_Ncdf_dim('nav_lev',restart_file,z) 134 136 CALL Read_Ncdf_dim('x_a',restart_file,x_a) 135 137 CALL Read_Ncdf_dim('y_a',restart_file,y_a) … … 165 167 ENDIF 166 168 ! 169 ! one needs bathy_level 170 IF( TRIM(parent_bathy_level) /= '' ) THEN 171 status = Read_bathy_level(TRIM(parent_bathy_level),G0) 172 status = Read_bathy_level(TRIM(child_bathy_level),G1) 173 ELSE 174 status = read_bathy_meter(TRIM(parent_bathy_meter),G0) 175 status = read_bathy_meter(TRIM(child_bathy_meter),G1) 176 CALL meter_to_levels(G0) 177 CALL meter_to_levels(G1) 178 ENDIF 179 ! get masks 167 180 CALL Init_mask(parent_bathy_level,G0,x,y) 168 CALL Init_mask(child bathy,G1,1,1)181 CALL Init_mask(child_bathy_level,G1,1,1) 169 182 170 183 G0%tmask = 1. … … 295 308 CALL Write_Ncdf_dim('x',Child_file,nxfin) 296 309 CALL Write_Ncdf_dim('y',Child_file,nyfin) 297 CALL Write_Ncdf_dim(' z',Child_file,z)310 CALL Write_Ncdf_dim('nav_lev',Child_file,z) 298 311 CALL Write_Ncdf_dim(TRIM(timedimname),Child_file,0) 299 312 IF (.NOT.iom_activated) THEN … … 354 367 CALL Read_Ncdf_var('nav_lev',TRIM(restart_file),nav_lev) 355 368 IF(.NOT. dimg ) THEN 356 CALL Write_Ncdf_var('nav_lev',' z',Child_file,nav_lev,'float')369 CALL Write_Ncdf_var('nav_lev','nav_lev',Child_file,nav_lev,'float') 357 370 CALL Copy_Ncdf_att('nav_lev',TRIM(restart_file),Child_file) 358 371 ENDIF … … 445 458 446 459 WRITE(*,*) TRIM(varname),'interpolation ...' 447 vert_coord_name = ' z'460 vert_coord_name = 'nav_lev' 448 461 posvar='U' 449 462 Interpolation = .TRUE. … … 463 476 464 477 WRITE(*,*) TRIM(varname),'interpolation ...' 465 vert_coord_name = ' z'478 vert_coord_name = 'nav_lev' 466 479 posvar='V' 467 480 Interpolation = .TRUE. … … 497 510 498 511 WRITE(*,*) TRIM(varname),'interpolation ...' 499 vert_coord_name = ' z'512 vert_coord_name = 'nav_lev' 500 513 posvar='T' 501 514 Interpolation = .TRUE. … … 505 518 irec = 12 * z + 6 506 519 WRITE(*,*) TRIM(varname),'interpolation ...' 507 vert_coord_name = ' z'520 vert_coord_name = 'nav_lev' 508 521 posvar='T' 509 522 Interpolation = .TRUE. … … 516 529 IF( Interpolation ) THEN 517 530 ! 518 IF( vert_coord_name == ' z') THEN531 IF( vert_coord_name == 'nav_lev') THEN 519 532 nbvert_lev = z 520 533 ELSE IF( vert_coord_name == 'z_b') THEN … … 592 605 nxfin,nyfin,matrix,src_add,dst_add) 593 606 END SELECT 594 ! 595 CALL Correctforconservation(tabvar1(:,:,1,1),tabinterp4d(:,:,1,1), & 596 G0%e1t,G0%e2t,G1%e1t,G1%e2t,nxfin,nyfin,posvar,imin-jpizoom+1,jmin-jpjzoom+1) 597 607 ! 608 IF( conservation ) THEN ! clem: it currently does not work 609 CALL Correctforconservation(tabvar1(:,:,1,1),tabinterp4d(:,:,1,1), & 610 G0%e1t,G0%e2t,G1%e1t,G1%e2t,nxfin,nyfin,posvar,imin-jpizoom+1,jmin-jpjzoom+1) 611 ENDIF 598 612 599 613 ENDIF … … 625 639 END SELECT 626 640 ! 627 CALL Correctforconservation(tabvar1(:,:,1,1),tabinterp4d(:,:,1,1), & 628 G0%e1u,G0%e2u,G1%e1u,G1%e2u,nxfin,nyfin,posvar,imin-jpizoom+1,jmin-jpjzoom+1) 629 641 IF( conservation ) THEN ! clem: not coded for U 642 CALL Correctforconservation(tabvar1(:,:,1,1),tabinterp4d(:,:,1,1), & 643 G0%e1u,G0%e2u,G1%e1u,G1%e2u,nxfin,nyfin,posvar,imin-jpizoom+1,jmin-jpjzoom+1) 644 ENDIF 630 645 ENDIF 631 646 … … 658 673 END SELECT 659 674 ! 660 CALL Correctforconservation(tabvar1(:,:,1,1),tabinterp4d(:,:,1,1), & 661 G0%e1v,G0%e2v,G1%e1v,G1%e2v,nxfin,nyfin,posvar,imin-jpizoom+1,jmin-jpjzoom+1) 662 675 IF( conservation ) THEN ! clem: not coded for V 676 CALL Correctforconservation(tabvar1(:,:,1,1),tabinterp4d(:,:,1,1), & 677 G0%e1v,G0%e2v,G1%e1v,G1%e2v,nxfin,nyfin,posvar,imin-jpizoom+1,jmin-jpjzoom+1) 678 ENDIF 663 679 ENDIF 664 680 … … 777 793 dimnames(1)='x' 778 794 dimnames(2)='y' 779 dimnames(3)=' z'795 dimnames(3)='nav_lev' 780 796 dimnames(4)=TRIM(timedimname) 781 797 CALL Write_Ncdf_var('tb',dimnames,Child_file,tb,'double') … … 803 819 dimnames(1)='x' 804 820 dimnames(2)='y' 805 dimnames(3)=' z'821 dimnames(3)='nav_lev' 806 822 dimnames(4)=TRIM(timedimname) 807 823 CALL Write_Ncdf_var('sb',dimnames,Child_file,sb,'double') … … 875 891 ! 876 892 IF(partial_steps) THEN 877 status = Read_Bathy_Meter(TRIM(Child bathymeter),G1)893 status = Read_Bathy_Meter(TRIM(Child_Bathy_Meter),G1) 878 894 CALL get_scale_factors( G1,fse3t,fse3u,fse3v ) 879 895 ELSE … … 961 977 dimnames(1)='x' 962 978 dimnames(2)='y' 963 dimnames(3)=' z'979 dimnames(3)='nav_lev' 964 980 dimnames(4)=TRIM(timedimname) 965 981 CALL Write_Ncdf_var('rotn',dimnames,Child_file,rotn,'double')
Note: See TracChangeset
for help on using the changeset viewer.