!!! the is program can convert the grided standard level TS data to model grid for data assimilation !!! file ggao 032009 PROGRAM TS_clim use mod_input use mod_ts_clim use mod_setup USE MOD_NCDIO USE EQS_OF_STATE IMPLICIT NONE INTEGER :: STATUS, I CHARACTER(LEN=4) :: BFLAG character(len=*),parameter::CVS_Id="$Id$" ! [sng] CVS Identification character(len=*),parameter::CVS_Date="$Date$" ! [sng] Date string character(len=*),parameter::CVS_Name="$Name$" ! [sng] File name string character(len=*),parameter::CVS_Revision="$Revision$" ! [sng] File revision string CHARACTER(len=120) :: TSC_OUT_NAME TYPE(TIME) :: NOW TYPE(NCFTIME), POINTER ::FTM ! INTIALIZE MEMORY FROM libfvcom.a CALL INITIALIZE_CONTROL("Climatology TS Create") # if defined (MULTIPROCESSOR) CALL INIT_MPI_ENV(MYID,NPROCS,SERIAL,PAR,MSR,MSRID) MPI_FVCOM_GROUP = MPI_COMM_WORLD ! FOR NOW MAKE THEM EQUAL # endif IF (PAR) CALL FATAL_ERROR & & ("THIS PROGRAM IS WAY TO SHORT TO BOTHER WITH WRITING AS A PARALLE CODE.",& & "STOP AND RERUN WITH JUST ONE PROCESSOR!") CALL GET_COMMANDLINE(CVS_ID,CVS_Date,CVS_Name,CVS_Revision) IF (DBG_SET(DBG_LOG)) THEN WRITE(IPT,*) "! =========================" WRITE(IPT,*) "! CLIMATOLOGY TS CREATE" WRITE(IPT,*) "! =========================" END IF CALL NAME_LIST_INITIALIZE CALL READ_NAMELIST CALL CNTRL_PRMTRS ! CALL PRINT_REAL_TIME(NOW,IPT,"Init TS Time Is:") !! ggao CALL CHECK_IO_DIRS CALL OPEN_FILES ! CALL GET_FVCOM_GRID ! if(.false.) then CALL READ_COLDSTART_GRID(GRIDUNIT,MGL,NGL,NV) m = MGL mt = MGL n = ngl nt = ngl CALL READ_COLDSTART_SIGMA CLOSE(SIGMAUNIT) KBM1 = KB - 1 KBM2 = KB - 2 CALL ALLOCATE_SPACE ALLOCATE(X_LCL(0:MGL),Y_LCL(0:MGL)) CALL READ_COLDSTART_COORDS(GRIDUNIT,MGL,X_LCL,Y_LCL) CLOSE(GRIDUNIT) CALL COORDINATE_UNITS(X_LCL,Y_LCL) CALL SETUP_CENTER_COORDS CALL READ_COLDSTART_DEPTH(DEPTHUNIT,MGL,X_LCL,Y_LCL,H) D = H CLOSE(DEPTHUNIT) CALL Setup_Sigma CALL SETUP_SIGMA_DERIVATIVES DEALLOCATE(X_LCL,Y_LCL) ! endif ! CALL SET_PARAMETERS CALL SET_TIME !! read the TS-CLIM data information CALL READ_OLD_TS_INF !CALL LOAD_TSC(OLD_TS_FILE) ! CALL LOAD_TSC !! set up the output file TSC_OUT_NAME = TRIM(output_dir)//trim(output_file) CALL MAKE_TS_OUTFILE(TSC_OUT_NAME) FTM => NC_OUT%FTIME now = StartTime IINT = 1 ! CALL READ_TSC(TC0=TC,SC0=SC) ! Now = TC%dtm DO WHILE(IINT <= 4) CALL READ_TSC(now,TC,SC) print*,t1(205,1:2) print*,tsl(205,1:2) !! ! IF(CONVECTIVE_OVERTURNING)THEN CALL DENS2 CALL CONV_OVER CALL DENS2 CALL CONV_OVER ! IF(.NOT.BAROTROPIC)THEN ! SELECT CASE(SEA_WATER_DENSITY_FUNCTION) ! CASE(SW_DENS1) ! CALL DENS1 ! CASE(SW_DENS2) ! CALL DENS2 ! CASE(SW_DENS3) ! CALL DENS3 ! CASE DEFAULT ! CALL FATAL_ERROR("INVALID DENSITY FUNCTION SELECTED:",& ! & " "//TRIM(SEA_WATER_DENSITY_FUNCTION) ) ! END SELECT ! ! END IF ! END IF !! FTM%NEXT_STKCNT = FTM%NEXT_STKCNT + 1 CALL UPDATE_IODATA(NC_OUT,NOW) CALL NC_WRITE_FILE(NC_OUT) ! NOW = NOW + INTERVAL IINT = IINT + 1 END DO IF (DBG_SET(DBG_LOG)) WRITE(IPT,*) "! TADA!!!" CALL PSHUTDOWN END PROGRAM TS_clim